为什么我不能将我的Django Model的USPhoneNumberField设置为null = True,blank = True?

Saq*_*Ali 2 python django django-localflavor

我的Django模型:

from localflavor.us.forms import USPhoneNumberField

class Profile(models.Model):
    cellPhone = USPhoneNumberField(null=True, blank=True,)
Run Code Online (Sandbox Code Playgroud)

当我执行manage.py syncdb时,这会给我以下错误:

cellPhone = USPhoneNumberField(null=True, blank=True,)
TypeError: __init__() got an unexpected keyword argument 'null'
Run Code Online (Sandbox Code Playgroud)

如果不允许我将此字段声明为null = True,那么如何将此字段设为可选字段,就像我为其他许多字段所做的那样?

kar*_*ikr 5

USPhoneNumberField是一种form类型,而不是模型类型

用法(通常)是:

class Profile(models.Model):
    cellPhone = models.CharField(max_length=20, null=True, blank=True,)
Run Code Online (Sandbox Code Playgroud)

和forms.py

class ProfileForm(forms.Form): #or forms.ModelForm
    cellPhone = forms.USPhoneNumberField(...)
Run Code Online (Sandbox Code Playgroud)

这是文档

class localflavor.us.models.PhoneNumberField(*args,**kwargs)一个CharField,用于检查该值是否为有效的美国式电话号码(格式为XXX-XXX-XXXX).