如何让Django的DateTimeField可选?

Kie*_*ran 57 python django

我正在尝试实现一个待办事项列表网站来练习使用Django.在models.py中,我有一个名为Itemto-do项的类.在其中,我有以下几行:

due_date = models.DateTimeField(required=False)
Run Code Online (Sandbox Code Playgroud)

如果用户有某个待办事项的截止日期,due_date意味着是一个可选字段.问题是由于意外的关键字参数'required',上面的行给了我一个TypeError.

所以,似乎我不能使用DateTimeField的关键字参数'required'.有什么办法可以让DateTimeField可选吗?或者我有问题的标准实现?

bru*_*ers 92

"required"是Django表单的有效参数.对于模型,您需要关键字args blank=True(对于admin)和null=True(对于数据库).

  • 感谢您解释`required`,`blank`和`null`之间的区别. (4认同)
  • IIRC`blange = True,null = True`不建议用于文本字段,因为那时你可以有两个"空":`''和`NULL`,但这不适用于日期类型的字段吗? (2认同)
  • 在文本字段上避免 NULL 确实更好,对于不应该接受空字符串作为有效值的日期/日期时间字段确实不同。 (2认同)

mac*_*aku 29

使用 due_date = models.DateTimeField(null=True, blank=True)

查看字段选项以获取更多信息.

  • @halilpazarlama你的模型字段中不需要`required = False`,我甚至不是模型字段定义中的有效关键字参数.`required =*`可以在表单字段中使用,如果你的模型字段定义中已经有`blank = True`,你仍然不需要. (2认同)