Django 表单保存 - 更新布尔字段
Django form save - update boolean field
我有以下型号:
class Survey(models.Model):
is_published = models.BooleanField()
默认设置为 "False"。
我正在使用 modelForm 将其添加到表单中。当我在表单上调用 save() 方法时,我想将 "False" 更改为 "True" 并将其保存到数据库中。我该怎么做?
我已经通读了 https://docs.djangoproject.com/en/1.11/topics/forms/modelforms/ 但它没有解释这是如何工作的。
您在视图中执行此操作。
if form.is_valid()
obj = form.save(commit=False)
obj.is_published = True
obj.save()
return redirect('wherever')
在你的模型下你可以定义保存方法:
def save(self, *args, **kwargs):
...
self.is_published = True
...
super(Survey, self).save(*args, **kwargs)
然而,这意味着每次保存模型实例时,该字段都会更改!
如果您只想在创建实例时更改它,您可以添加此检查:
if not self.pk:
self.is_published = True
我有以下型号:
class Survey(models.Model):
is_published = models.BooleanField()
默认设置为 "False"。
我正在使用 modelForm 将其添加到表单中。当我在表单上调用 save() 方法时,我想将 "False" 更改为 "True" 并将其保存到数据库中。我该怎么做?
我已经通读了 https://docs.djangoproject.com/en/1.11/topics/forms/modelforms/ 但它没有解释这是如何工作的。
您在视图中执行此操作。
if form.is_valid()
obj = form.save(commit=False)
obj.is_published = True
obj.save()
return redirect('wherever')
在你的模型下你可以定义保存方法:
def save(self, *args, **kwargs):
...
self.is_published = True
...
super(Survey, self).save(*args, **kwargs)
然而,这意味着每次保存模型实例时,该字段都会更改!
如果您只想在创建实例时更改它,您可以添加此检查:
if not self.pk:
self.is_published = True