【发布时间】:2017-03-16 06:37:17
【问题描述】:
如果您有一个可选的 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 = ''
)
【问题讨论】:
-
使用
null=True,您的字符域现在有两个“空”值:None和''。通常建议不要在 charfield 上使用null=True,除非您出于某种原因需要它(例如唯一索引)。 -
谢谢。为了其他读者的利益,您的意思在这里解释:docs.djangoproject.com/en/dev/ref/models/fields/#null
标签: django django-models django-forms