Django - 多模型复杂表单

0 投票
1 回答
1803 浏览
提问于 2025-04-16 01:53

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

撰写回答