我有以下型号:
class Survey(models.Model):
is_published = models.BooleanField()
设置为" False"作为默认值。
我正在使用modelForm将其添加到表单中。当我在窗体上调用save()方法时,我想更改" False" to" True"并将其保存到数据库。我该怎么做?
我已阅读{{3}}并且没有解释这是如何运作的。
答案 0 :(得分:2)
您可以在视图中执行此操作。
if form.is_valid()
obj = form.save(commit=False)
obj.is_published = True
obj.save()
return redirect('wherever')
答案 1 :(得分:1)
在您的模型下,您可以定义保存方法:
def save(self, *args, **kwargs):
...
self.is_published = True
...
super(Survey, self).save(*args, **kwargs)
然而,这意味着每次保存模型实例时,字段都会被更改!
如果您只想在创建实例时更改它,可以添加此检查:
if not self.pk:
self.is_published = True