2012-03-29 8 views
5

Introspection sagt mir, dass Django-Felder ein Attribut "hidden_widget" haben. Vielleicht ist es nicht der gegebene Zweck dieses Attributs, aber seine bloße Existenz verleitet mich dazu, es in einer Vorlage zu verwenden, um ein verstecktes Widget bedingt zu rendern. z.B.Gibt es eine Möglichkeit, eine versteckte Version eines Django-Feldes in einer Vorlage dynamisch zu rendern?

{% if some condition %} 
    {{ form.my_field }} 
{% else %} 
    {{ form.my_field.hidden_widget }} 
{% endif %} 

Aber das funktioniert nicht. Ist es möglich, das versteckte Widget auf diese Weise zu verwenden? Was vermisse ich?

Ich weiß, ich könnte dies tun, indem dynamisch auf das Widget in den Einstellung meiner benutzerdefinierten Form-Klasse init basierend auf einigen benutzerdefinierten kwarg für die bedingten, das ich es passieren wird, aber die obige Lösung (dynamisch Rendering den versteckt Widget in der Vorlage) wäre viel einfacher, wenn es verfügbar ist.

Antwort

8

Ich war in der Nähe, aber mit der falschen Funktion. Die Antwort, für diejenigen, die interessiert sind, ist:

{{ form.my_field.as_hidden }} 
+0

Dies herausgefunden, indem Sie auf Django Quellcode. Ich bin mir nicht sicher, ob ich das irgendwo dokumentiert gesehen habe. Wenn jemand eine Antwort mit einem Link zu irgendeiner Art von Dokumentation für die Funktion as_hidden postet, werde ich dies als akzeptiert markieren, da ich es vorziehen würde, meine eigene Antwort nicht zu akzeptieren. –

Verwandte Themen