【发布时间】:2014-01-16 10:15:13
【问题描述】:
我有一个模型和模型形式定义如下
class Article(models.Model):
is_draft = models.BooleanField(default=True)
date_published = models.DateTimeField(editable=False, blank=True, null=True)
def save(self, *args, **kwargs):
if (self.is_draft == False) and (self.date_published == None):
self.date_published = datetime.now()
super().__init__(*args, **kwargs)
class ArticleForm(models.ModelForm):
class Meta:
fields = ['is_draft']
def save(self, force_insert=False, force_update=False, commit=True):
article = Article(**self.cleaned_data)
article.save()
奇怪的是,当我将自定义保存方法添加到模型时,ArticleForm 中保存方法的参数会传递给它。也就是说,force_insert=False、force_update=False 也被传递到 Article save 方法中。为什么会这样?
【问题讨论】:
-
我会查看 self.cleaned_data 看看它是否有 force_**
-
运行你的代码,无法重现问题:
Article.save()没有得到force_insert和force_update参数。您能否提供传递给表单和模型保存方法的参数列表?
标签: django django-models django-forms