【问题标题】:Django: Overriding form save?Django:覆盖表单保存?
【发布时间】:2009-12-07 19:51:39
【问题描述】:

有这方面的文档吗?我什么都挖不出来。

我有一个自定义ModelForm 用于创建文章。每当我使用这个表单时,我都会传入一个article 实例,这样我就可以自动设置作者:

    article = Article(author=req.user)
    form = ArticleForm(req.POST, instance=article)

如何从form.save() 内部访问这个instance/article 变量?
编写此方法时还有什么需要注意的吗?还是只需要返回一个article 就可以了?

【问题讨论】:

  • 我想我正在寻找的答案是:article = super(ArticleForm, self).save(commit=False)
  • 发布答案并接受它......它会帮助其他人,并且可能会给你一个徽章:)
  • 好的...我会在强制性的 2 天等待期后接受它,但与此同时,有没有办法检查 save() 是在更新现有文章,还是创建新文章一个?
  • 您可以使用:article, created = Article.objects.get_or_create(whatever_field=whatever_value, defaults={'whatever_field' :whatever_value}),它将使用提供的值获取或创建一个新的文章对象并告诉你它是否创建了一个新对象。参考:docs.djangoproject.com/en/1.2/ref/models/querysets/…

标签: django forms


【解决方案1】:

我想我正在寻找的答案是:

article = super(ArticleForm, self).save(commit=False)

【讨论】:

    猜你喜欢
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2015-08-01
    相关资源
    最近更新 更多