2010-12-02 13 views
2

J'essaye de construire un modèle avec quelques formes. J'ai un modèle avec environ 400 attributs pour une entité. Maintenant, je veux faire deux modèles différents. Dans un modèle, les attributs doivent être listés comme django form do. Dans l'autre modèle, les attributs doivent être définis en lecture seule.définir chaque forme en lecture seule sans utiliser de widgets dans le modèle

Je ne veux pas créer deux formulaires différents pour chaque attribut en utilisant des widgets.

cust_form = GeneralDataForm(instance=_customer, auto_id=False, label_suffix='') 

J'ai essayé d'insérer le widget ici mais cela ne fonctionne pas.

Répondre

2

En utilisant ce code vous pouvez rendre n'importe quelle forme en lecture seule. Cherchez-vous quelque chose comme ça?

cust_form_read_only = make_form_readonly(cust_form) 

def make_form_readonly(form): 
     for name, field in form.fields.items(): 
     field.widget.attrs['readonly'] = True 
     field.widget.attrs['disabled'] = True 
    return form