【发布时间】:2015-04-21 22:49:19
【问题描述】:
我有几个具有一对一关系的模型。例如
class Task(models.Model):
initial_comment = models.OneToOneField('Comment')
# A pack of other fields
class Comment(models.Model)
body = RichTextField()
# A pack of other fields
我想基于表单创建“创建视图”,让用户能够在那里创建任务和初始评论。
- 我不能使用
CreateView,因为它只基于一个模型 - 我不能使用
ModelForm,因为它只基于一个模型 - 我可以创建多个表单,但我无法将它们加入一个表单集(表单不同)
- 我觉得这里应该使用“
inlineformset_factory”(InlineFormSet),但我不确定它是否最适合。是否有任何 3rd 方 Django 应用可以做到这一点?
当然我可以自己创建表单,但我不想复制/粘贴所有字段、它们的类型、本地化标签、验证等。我只想列出他们的名字(比如fields attibute)。
我也可以有 2 个表单并在任何地方都支持它们并手动跟踪依赖项(首先保存 cmets),就像在 How can create a model form in django with a one-to-one relation with another model 中一样,但我希望必须有更好的解决方案。
如果你想知道为什么我需要一对一:评论在其他地方被大量使用,并且与不同的模型有不同的关系。
【问题讨论】: