【发布时间】:2010-12-23 16:16:57
【问题描述】:
我制作了一个漂亮的表格,以及一个用于处理它的大而复杂的“添加”函数。开头是这样的……
def add(req):
if req.method == 'POST':
form = ArticleForm(req.POST)
if form.is_valid():
article = form.save(commit=False)
article.author = req.user
# more processing ...
现在我真的不想在edit() 方法中复制所有这些功能,所以我认为edit 可以使用完全相同的模板,也许只需在表单中添加一个id 字段,这样@ 987654325@ 函数知道它在编辑什么。但是这有几个问题
- 在
add函数中我应该在哪里设置article.id?它必须在form.save之后,因为这是创建文章的地方,但它甚至永远不会到达那个位置,因为由于独特的约束,表单是无效的(除非用户编辑了所有内容)。我可以删除is_valid检查,但随后form.save会失败。 - 如果表单实际上无效,我在编辑功能中动态添加的字段不会被保留。
那么我该如何处理呢?
【问题讨论】: