如果你有一个可选的Django模型字段,当用户将表单字段留空时,创建该Django对象的正确方法是什么?我有以下模型和形式(顺便说一下,我知道我可以使用ModelForm):
# models.py
class Club(models.Model):
hostname = models.CharField(max_length=128)
co_hostname = models.CharField(max_length=128, null=True, blank=True)
# forms.py
class ClubForm(forms.Form):
hostname = models.CharField(max_length=128)
co_hostname = models.CharField(max_length=128, required=False)
如果用户将共同主持人字段留空,我是否应该在创建对象时输入如下所示的空白?我一直认为,如果你在数据库表中插入一个空白,你仍然会给它一个你可能不想做的值。处理这种情况的正确方法是什么?感谢。
# views.py
club = Club.objects.create(
hostname = form.cleaned_data['hostname'],
co_hostname = ''
)
答案 0 :(得分:0)
您可以将None
作为字段值,因为您的字段的属性null
设置为True
。
所以你可以:
club = Club.objects.create(hostname=form.cleaned_data['hostname'], co_hostname=None)
为了让您的生活更轻松,我还建议您为表单使用ModelForm
,因为您要将模型中完全相同的字段复制到表单中。