Я запускаю приложение Django.
views.py:
@user_passes_test(lambda u: u.is_anonymous)
def signup(request):
if request.method=='POST':
user_form = UserForm(data=request.POST)
profile_form = ProfileForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
profile = profile_form.save(commit=False)
profile.user=user
response = {'status':'success','message':'Registered Successfully'}
return JsonResponse(response,safe=False)
elif user_form.errors:
ress = {'status':'Failed','message':'Username already Exists'}
return JsonResponse(ress,safe=False)
elif profile_form.errors:
resss = {'status':'Failed','message':'mobile number already Exists'}
return JsonResponse(resss,safe=False)
forms.py:
class UserForm(forms.ModelForm):
username=forms.CharField(widget=forms.PasswordInput)
password=forms.CharField(widget=forms.PasswordInput)
class Meta():
model=User
fields=('username','password')
class ProfileForm(forms.ModelForm):
class Meta:
model=Profile
widgets = {
'address_line_1': forms.TextInput(attrs={'placeholder': 'Door No,Building'}),
'address_line_2': forms.TextInput(attrs={'placeholder': 'Area,Locality'}),
}
fields=('first_name','last_name','mobile_no','email','address_line_1','address_line_2','postal_code','city','country')
user_form входит в базу данных, но profile_form не попадает в базу данных. Если я регистрируюсь с тем же mobile_no 2 раза, он показывает сообщение «Зарегистрировался успешно».