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

时间:2014-07-31 20:41:37

标签: python django django-localflavor

我的Django模型:

from localflavor.us.forms import USPhoneNumberField

class Profile(models.Model):
    cellPhone = USPhoneNumberField(null=True, blank=True,)

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

cellPhone = USPhoneNumberField(null=True, blank=True,)
TypeError: __init__() got an unexpected keyword argument 'null'

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

1 个答案:

答案 0 :(得分:5)

USPhoneNumberFieldform类型,而不是模型类型

用法(通常)是:

class Profile(models.Model):
    cellPhone = models.CharField(max_length=20, null=True, blank=True,)

和forms.py

class ProfileForm(forms.Form): #or forms.ModelForm
    cellPhone = forms.USPhoneNumberField(...)

以下是documentation

  

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