Django - 具有多个模型的复杂形式

时间:2010-07-27 12:47:21

标签: python django django-forms

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...

我有一个表单需要显示我的Property模型中的几个条目,每个条目都有一个相应的PropertyComment表单来收集用户对该属性的注释。换句话说,允许用户在同一页面上注释多个Property实例。

这似乎超出了Inline formset的预期用途,因为它是多模型到多模型与单模型到多模型。似乎试图遍历Property实例并为每个实例创建一个内联formset不仅笨重,而且我甚至不确定它是否可行。

关于从哪里开始的任何想法?

1 个答案:

答案 0 :(得分:0)

您是否考虑过使用评论框架:

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...