Django - 多模型复杂表单
Django 1.1
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...
我有一个表单,需要显示我的“房产”模型中的多个条目,每个条目都有一个对应的“房产评论”表单,用来收集用户对该房产的评论。换句话说,就是让用户在同一页面上对多个房产进行评论。
这似乎超出了“内联表单集”的预期用法,因为它是多模型对多模型,而不是单模型对多模型。看起来尝试遍历“房产”实例并为每个实例创建一个内联表单集,不仅显得繁琐,而且我甚至不确定这样做是否可行。
有没有什么建议可以让我开始解决这个问题?
1 个回答
2
你有没有考虑过使用评论框架呢?
http://docs.djangoproject.com/en/dev/ref/contrib/comments/
如果这个不适合你,那你可以看看 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...