2010-07-27 8 views
0

Django 1.1Django - formes complexes avec plusieurs modèles

models.py:

class Property(models.Model): 
    name = models.CharField() 
    addr = models.CharField() 
    phone = models.CharField() 
    etc.... 

class PropertyComment(models.Model): 
    user = models.ForeignKey(User) 
    prop = models.ForeignKey(Property) 
    text = models.TextField() 
    etc... 

J'ai une forme qui a besoin d'afficher plusieurs entrées de mon modèle de propriété chacun avec une forme de PropertyComment correspondant à recueillir un les commentaires de l'utilisateur sur cette propriété. En d'autres termes, autoriser un utilisateur à commenter plusieurs instances de propriété sur la même page.

Cela semble hors de l'utilisation prévue d'un jeu de formulaires Inline, car il est multi-modèle à multi-modèle par rapport à un modèle unique à multi-modèle. Il semble que tenter d'itérer à travers les instances de propriété et créer un formset en ligne pour chacun n'est pas seulement maladroit, mais je ne suis même pas sûr que cela puisse fonctionner.

Des idées sur par où commencer?

Répondre

0

Avez-vous pensé à utiliser le cadre de commentaires:

http://docs.djangoproject.com/en/dev/ref/contrib/comments/

Si cela ne fonctionne pas pour vous, alors peut-être regarder dans inlineformset_factory:

http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#inline-formsets

from django.forms.models import inlineformset_factory 
PropertyCommentFormSet = inlineformset_factory(Property, PropertyComment) 
property= Property.objects.get(name=u'some property name') 
formset = PropertyCommentFormSet(instance=property) 
etc... 
Questions connexes