【发布时间】:2011-08-09 18:47:06
【问题描述】:
也许我的方法不好,但假设这种通用场景:
我有包含 cmets 的博客。博客页面有一个用于创建 cmets 的表单。注释有一个 ModelForm,实际的 HTML 是有选择地完成的。外键当然是不可见或不呈现的。提交时,评论的外键需要与博客相关联。
如果我使用带有注释 ModelForm 的博客外键的初始值,它不会保留在 POST 中。有道理,因为它不在表单标签中。
我可以在表单调用的视图中的 POST 之后附加它,但 ModelForm(request.POST).data 是不可变的。我可以做 ModelForm(request.POST).save(commit=False) 但这意味着评论的模型的博客外键可以是空白的,从模型的角度来看这并没有什么意义。
这样做的正确方法是什么?似乎是一个非常标准的用法。
谢谢
【问题讨论】:
-
一个想法:用正确的外键创建新的评论模型实例,用新的模型实例和帖子数据调用modelform构造函数,然后保存。这样可以避免保存两次感觉有点奇怪(纯个人意见)
标签: django django-models django-forms