Django CharField TypeError: __init__() got an unexpected keyword argument 'empty_value'

Django CharField TypeError: __init__() got an unexpected keyword argument 'empty_value'

Django 建议我可以为 CharField 设置 empty_valuehttps://docs.djangoproject.com/en/2.2/ref/forms/fields/#django.forms.CharField.empty_value

我正在尝试更改我的字段:

my_field = models.CharField(max_length=80, blank=True)

至:

my_field = models.CharField(max_length=80, blank=True, null=True, empty_value=None)

我在尝试创建迁移时遇到此错误:

File "/Virtualenv/python3.7/site-packages/django/db/models/fields/init.py", line 1039, in init super().init(*args, **kwargs) TypeError: init() got an unexpected keyword argument 'empty_value'

原因是因为我想在包含 my_field 和其他字段的模型上设置一个 unique_together,具有以下行为:

我不想要像 cleanvalidate_my_field 方法或类似方法那样不是数据库验证的验证。

您试图将 forms.CharField 用作没有 empty_valuemodels.CharField。对于模型,您需要使用 default field.

这段代码在哪个文件中?

如果在 models.py 中(您定义模型),则使用 default 而不是 empty_value

如果在forms.py(你定义表格),然后导入django.forms,而不是django.db.models然后你可以使用:

my_field = forms.CharField(max_length=80, required=False, empty_value=None)