2011-02-15 14 views
8

Estoy iterando sobre un formset hecho de modelos en mi plantilla. Quiero proporcionar información adicional sobre ese modelo. Si la respuesta a esta pregunta How to Access model from Form template in Django funcionaría, que podría hacer esto:¿Cómo puedo acceder a la instancia del modelo utilizada por un formulario desde una plantilla?

{% for form in formset.forms %} 
Status:{{ form._meta.model.status }} 
    {{form}} 
{% endfor %} 

Pero eso simplemente tira el TemplateSyntaxError: Variables y atributos no pueden comenzar con guiones bajos.

Respuesta

20

no creo que eso es lo que quiere hacer. Un modelo es clase: no tendrá un status, ya que es un campo que solo obtiene un valor para una instancia particular.

Sospecho que lo que quiere hacer es acceder al modelo instancia asociado con el formulario, que es solo form.instance.

+0

sí, disculpa por confundir clase y instancia. Gracias por la rápida respuesta. – marue

+1

form.instance es lo que estaba buscando :) –

0

Si crea una propiedad en el formulario que lee el valor, puede acceder fácilmente a ella en la plantilla.

class SomeForm(...): 
    @property 
    def status(self): 
    return self._meta.model.status 

... 

     {{ form.status }} 
+0

hm, eso es bueno. Pero como tengo un montón de modelfields que quiero proporcionar como información básica para llenar el formulario, no me siento muy feliz con la idea de ponerlos todos en la forma ... – marue

+0

Ah, y por cierto, gracias usted para su respuesta rápida también. – marue

Cuestiones relacionadas