2016-04-25 5 views
2

Ich benutze Django.
Ich habe einen Client, der eine weiße Container-Box benötigt, um hinter den Inhalt auf jeder Seite ihrer django-Website zu gelangen, außer auf der Homepage. Ich bin neu im Django und kenne daher keine Möglichkeit.If Aussage, die die Titelseite der Web site beeinflußt?

Ich weiß, dass auf Wordpress gibt eine if-Anweisung ist, die etwas entlang der Linien von dem, was ich suche tun: ?php is_front_page(); ?

Gibt es etwas in django, die ähnliche etwas tun kann? Ich brauche nur eine Möglichkeit, einem Element eine CSS-Klasse hinzuzufügen und dieses Styling von der Homepage der Website auszuschließen.

Antwort

0

Sie können dynamisch eine CSS-Klasse zu einem HTML-Element wie folgt hinzu:

Sie müssen über context_data dict Wert auf Ihre HTML senden, lassen Sie uns ein Beispiel nehmen, werde ich asumme Sie verwenden Klassenbasierte Ansichten.

class MyView(TemplateView): 
    def get_context_data(self, *args, **kwargs): 
     context = super(MyView, self).get_context_data(*args, **kwargs) 
     context.update({'add_class': True}) 
     return context 

Dann in Ihrer Vorlage:

... 
<div class='someclass {{ if add_class }}someotherclass{{endif}}'></div> 
0

Diese Art von Logik gehört Tags Vorlage. Sie können ein eigenes Schablonen-Tag schreiben, das die URL der aktuellen Seite überprüft und eine Zeichenfolge zurückgibt, die Sie dann als Div-Klasse verwenden können, um das div zu stylen.

Hier ist ein vollständiges Beispiel. Fügen Sie den folgenden Code z. templatetags/helpers.py in einem Ihrem Apps:

from django import template 
register = template.Library() 

@register.simple_tag(takes_context=True) 
def is_homepage(context): 
    if context.request.path == "/": 
     return "homepage" 
    else: 
     return "not_homepage" 

In folgendem Code auf alle Ihre Vorlagen, ideal Basis Vorlage in allen anderen Vorlagen erweitern:

{% load helpers %} 
... 
<div class="{% is_homepage %}"> 
    ... 
</div> 
... 

Sie können mehr über benutzerdefinierte Vorlage lesen Tags hier: https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/