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_value
:https://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
,具有以下行为:
- 如果
my_field
为 NULL,我希望 unique_together
子句始终允许其他组合,因为 NULL != NULL in SQL.
- 如果
my_field
不是 NULL,我希望 unique_together
子句检查其他字段的唯一性。
我不想要像 clean
或 validate_my_field
方法或类似方法那样不是数据库验证的验证。
您试图将 forms.CharField
用作没有 empty_value
的 models.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)
Django 建议我可以为 CharField 设置 empty_value
:https://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
,具有以下行为:
- 如果
my_field
为 NULL,我希望unique_together
子句始终允许其他组合,因为 NULL != NULL in SQL. - 如果
my_field
不是 NULL,我希望unique_together
子句检查其他字段的唯一性。
我不想要像 clean
或 validate_my_field
方法或类似方法那样不是数据库验证的验证。
您试图将 forms.CharField
用作没有 empty_value
的 models.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)