Ich habe eine Seite mit vielen Objekten mit unterschiedlichen Inhaltstypen. Ich muss diese Objekte bewerten können. Hier ist eine Klasse dafür:
%Vor%Und meine Vorlage sollte wie folgt aussehen:
%Vor%Ich kann ein Template-Tag erstellen, um es zu erhalten, oder einen Klassennamen erhalten, indem ich z. B. dieses Snippet verwende: Ссылка Ich kann dieses Snuppet umschreiben, um die content_type_id für das Objekt zu bekommen, aber ich habe Angst ein wenig über eine große Menge von CT-Lookups in DB.
Aber gibt es eine eingebettete Methode, um den CT eines Objekts in eine Vorlage zu bekommen?
Der Ansichtscode:
%Vor%Um auf @Colleen's Antwort aufzubauen, benutzte ich einen Vorlagenfilter wie folgt:
%Vor%Und es in einer Vorlage wie folgt verwendet:
%Vor%Ich hatte auch eine Situation, in der ich den Inhaltstyp in der Vorlage brauchte und die einzige Möglichkeit, die ich finden konnte, war ein benutzerdefiniertes Vorlagen-Tag.
In Ihrer Situation würde ich mich jedoch nicht darum kümmern, da Sie content_type explizit als Fremdschlüssel speichern. Im schlimmsten Fall können Sie prefetch_related()
verwenden, wenn Sie Ihre Score-Objekte in der Ansicht erhalten. Ich weiß nicht, ob Django schlau genug ist, auf dem Feld anzuhalten, wenn du nach einer Fremdschlüssel-ID fragst. Das ist das einzige.
Ich bevorzuge dies mit Zuordnungs-Tags (neu in Django 1.4):
%Vor%und verwendet als
%Vor%Tags und Links python django django-templates django-contenttypes