2016-07-23 10 views
2

Ich habe dies an der Spitze meiner djangocms SeitenvorlageKann ich djangocms-Plugins in einer bedingten erweiterten Seite verwenden?

{% extends request.user.is_authenticated|yesno:"member_template.html,base.html" %} 

Meine Plugins sind nicht mit dieser Einstellung arbeiten. Aber wenn ich das mache

{% extends "member_template.html" %} 

Meine Plugins funktionieren. Gibt es eine Möglichkeit, das zu beheben? Ich will das bedingt.

+0

Haben Sie daran gedacht? http://StackOverflow.com/a/5381015/1757321 – Rexford

Antwort

2

Angenommen, Sie verwenden Render in Ihrer Ansicht.

if request.user: base_file = "member_template.html" 
else: base_file = base.html 
render(request,'my_html.html', 
       {'base_file' : base_file}) 

Und dann erweitern Sie Ihren Tag wie folgt aussieht:

{% extends base_file %} 
0

Kannst du nicht einfach eine if-Anweisung einfügen?

{% if user.is_authenticated %} {% extends "member_template.html" %} 
{% else %} {% extends "base.html" %} 
{% endif %} 
+0

Nein, die erste Zeile in einer Vorlage muss erweitert werden. Wenn ich das mache, was Sie vorgeschlagen haben, gibt es einen Fehler. –

+0

Ja, tut mir leid. Aber die Erweiterung muss auch sofort von der Datei, die es erweitert, oder von einer Variablen, die die Datei auswertet, gefolgt werden, so dass Sie ein Tag benötigen oder es in den Kontext einschließen. – HenryM

+0

Können Sie mir bitte ein Beispiel geben? Ich habe keine Ahnung davon. –