django clean_data.get is None



我想根据"is_seller"下拉列表制作一些必需的字段。 但seller = cleaned_data.get("is_seller")返回 无 !

这些是我的代码:

models.py

 class UserProfileInfo(models.Model):
user=models.OneToOneField(User,related_name='profile')
companyname=models.CharField(blank=True,null=True, ],max_length=128,verbose_name=_('companyname'))
phone_regex = RegexValidator(regex=r'^d{11,11}$', message=_(u"Phone number must be 11 digit."))
cellphone = models.CharField(validators=[phone_regex], max_length=17,verbose_name=_('cellphone'))
tel = models.CharField(blank=True,null=True,validators=[phone_regex], max_length=17,verbose_name=_('tel'))
state=models.CharField( max_length=128,verbose_name=_('state'))
city=models.CharField( max_length=128,verbose_name=_('city'))
address=models.CharField(blank=True,null=True, max_length=264,verbose_name=_('address'))
is_seller=models.CharField(blank=True,null=True, max_length=2,verbose_name=_('seller'))
def __str__ (self):
    return self.user.username
class Meta:
    verbose_name=_('UserProfileInfo')
    verbose_name_plural=_('UserProfileInfos')

forms.py :

  class UserProfileInfoForm(forms.ModelForm):
CHOICES = (('0','buyer'),
                   ('1','seller'),
                   ('2','both'))
is_seller = forms.CharField(widget=forms.Select(choices=CHOICES),label=_('title'))
companyname=forms.CharField(required=False,widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%', 'white-space':'nowrap'}),label=_('companyname'))
cellphone = forms.CharField(  widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('cellphone'))
tel = forms.CharField(  widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('tel'))
state=forms.CharField(widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('state'))
city=forms.CharField( widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:60%'}),label=_('city'))
address=forms.CharField(required=False, widget=forms.TextInput(attrs={'class':'form-control' ,'style': 'width:100%'}),label=_('address'))
class Meta():
    model=UserProfileInfo
    fields=('companyname','tel','cellphone','state','city','address','is_seller')
def clean_companyname(self):
    cleaned_data = super(UserProfileInfoForm, self).clean()
    seller = cleaned_data.get("is_seller")
    print(">>>>>>>>>>>>>>>>>>"+ str(seller))
    companyname = self.cleaned_data.get('companyname')
    if  seller!=0 and companyname=="":
         raise forms.ValidationError(u"Required.")
    return cleaned_data

应该是一般的clean()方法,而不是clean_companyname()

最新更新