2016-08-04 12 views

Antwort

0

ich Sie es mit Vanille-Tags (aber ich würde gerne bewiesen, sonst) tun können nicht denken:

Wenn Sie einen Hintergrund haben in Programmierung, oder wenn Sie an Sprachen gewöhnt sind, die Programmcode direkt in HTML mischen, wollen Sie berücksichtigen, dass das Django-Vorlagensystem nicht einfach Python in HTML eingebettet ist. Dies ist von Entwurf: das Vorlagensystem ist zu Express-Präsentation, nicht Programmlogik gemeint.

Jedoch Sie benutzerdefinierte {% assign [name] [value] %}-Tag verwenden:

from django import template 

class AssignNode(template.Node): 
    def __init__(self, name, value): 
     self.name = name 
     self.value = value 

    def render(self, context): 
     context[self.name] = self.value.resolve(context, True) 
     return '' 

def do_assign(parser, token): 
    """ 
    Assign an expression to a variable in the current context. 

    Syntax:: 
     {% assign [name] [value] %} 
    Example:: 
     {% assign list entry.get_related %} 

    """ 
    bits = token.contents.split() 
    if len(bits) != 3: 
     raise template.TemplateSyntaxError("'%s' tag takes two arguments" % bits[0]) 
    value = parser.compile_filter(bits[2]) 
    return AssignNode(bits[1], value) 

register = template.Library() 
register.tag('assign', do_assign) 

(Taken Form here)

Here ist Djangos doc auf benutzerdefinierten Tags.

0

Sie können diese Logik über die Variable forloop.first implementieren, die in for loop verfügbar ist.

Zum Beispiel:

{% if forloop.first %} 
    Display the form 
{% endif %} 
+0

Es ist nicht nur das erste Element, es ist ein Zustand, der nach dem n-ten Elemente kann nicht wahr sein –

Verwandte Themen