모델 판매자의 (고유 한) mobileno를 확인하려고합니다. 하지만 오류가 발생하여 원하는 작업을 수행하지 못했습니다.
mobileno의 고유성이 양식에서 검사되도록하려면 어떻게해야합니까?
다음은 내 model.py입니다 :장고의 판매자 모델에서 고유 한 휴대폰 번호를 확인하는 방법
class Seller(models.Model):
mobilenno = models.DecimalField(max_digits=10, decimal_places=0, unique=True) # Field name made lowercase.
password = models.CharField(max_length=64)
name = models.CharField(max_length=64)
# city = models.ForeignKey(City)
address = models.CharField(max_length=512, blank=True, null=True) # Field name made lowercase.
phoneno = models.DecimalField(max_digits=10, decimal_places=0, blank=True, null=True) # Field name made lowercase.
및 form.py
class SellerRegistrationForm(forms.Form):
mobileno1 = forms.DecimalField(widget=forms.TextInput(attrs=dict(required=True, max_length=30)),
max_digits=10, decimal_places=0,label=_("Mobile Number"))
password1 = forms.CharField(widget=forms.PasswordInput(attrs=dict(required=True, max_length=30, render_value=False)),
label=_("Password"))
password2 = forms.CharField(widget=forms.PasswordInput(attrs=dict(required=True, max_length=30, render_value=False)),
label=_("Password (again)"))
name = forms.CharField(widget=forms.TextInput(attrs=dict(required=True, max_length=30)),
label=_("Seller Name"))
address = forms.CharField(widget=forms.TextInput(attrs=dict(required=True, max_length=30)),
label=_("Seller Address"))
phoneno = forms.DecimalField(widget=forms.TextInput(attrs=dict(required=True, max_length=30)),
max_digits=10, decimal_places=0, label=_("Phone Number"))
def clean_mobileno1(self):
try:
Seller.objects.get(mobileno=self.cleaned_data['mobileno1'])
except Seller.DoesNotExist:
return self.cleaned_data['mobileno1']
raise forms.ValidationError(_("The mobilenumber already exists. Please try another one."))
def clean(self):
if 'password1' in self.cleaned_data and 'password2' in self.cleaned_data:
if self.cleaned_data['password1'] != self.cleaned_data['password2']:
raise forms.ValidationError(_("The two password fields did not match."))
return self.cleaned_data
views.py
def seller_register(request):
if request.method == 'POST':
form = SellerRegistrationForm(request.POST)
if form.is_valid():
Seller.objects.create(
mobilenno=form.cleaned_data['mobileno1'],
password=form.cleaned_data['password1'],
name=form.cleaned_data['name'],
address=form.cleaned_data['address'],
phoneno=form.cleaned_data['phoneno']
)
return HttpResponseRedirect('/register/success/')
else:
form = SellerRegistrationForm()
return render(request,'registration/register.html', {'form': form })
는 내가 설정하려면 정규 표현식 –
모바일 없음을 저장하는 문자 필드를 사용할 수 필드 기본값은 10 자리/문자입니다. –
잠시 동안 주변에 있었고 작동이 입증 된 무언가로 유스 케이스가 다루어지지 않는 한 분명히 할 수 있습니다. –