Django Ruft ContentType in einer Vorlage ab

8

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%     
night-crawler 09.10.2012, 18:36
quelle

3 Antworten

10

Um auf @Colleen's Antwort aufzubauen, benutzte ich einen Vorlagenfilter wie folgt:

%Vor%

Und es in einer Vorlage wie folgt verwendet:

%Vor%     
tutuDajuju 31.12.2013, 08:27
quelle
2

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.

    
Colleen 09.10.2012 19:54
quelle
1

Ich bevorzuge dies mit Zuordnungs-Tags (neu in Django 1.4):

%Vor%

und verwendet als

%Vor%     
susundberg 21.10.2014 11:18
quelle