Я создаю пользовательские модели для регистрационной формы в django, но у меня возникают некоторые проблемы с получением данных в базе данных. В настоящее время пользователи могут зарегистрироваться, и их имя пользователя, пароль, адрес электронной почты, имя и фамилия сохраняются, но все остальные данные формы не сохраняются в объекте. Ниже приведены мои формы и выход:Используя регистрационную форму для добавления в пользовательские поля (django)
Models.py
class Profile(models.Model):
user = models.OneToOneField(User)
gender = models.CharField(max_length=20)
medication = models.CharField(max_length=50, blank=True)
medical_history = models.CharField(max_length=50,blank=True)
DOB = models.CharField(max_length=20)
telephone = models.CharField(max_length=20)
address = models.CharField(max_length=30)
city = models.CharField(max_length=20)
state = models.CharField(max_length=20)
postcode = models.CharField(max_length=30)
forms.py:
class CreateAccountForm(ModelForm):
class Meta:
model = Profile
fields = ("username","password","password2","first_name","last_name",
"gender","medication","medical_history","DOB","email","telephone",
"address","city","state","postcode")
views.py:
def create_account(request):
form = CreateAccountForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
password2 = form.cleaned_data['password2']
first_name = form.cleaned_data['first_name']
last_name = form.cleaned_data['last_name']
gender = form.cleaned_data['gender']
medication = form.cleaned_data['medication']
medical_history = form.cleaned_data['medical_history']
DOB = form.cleaned_data['DOB']
email = form.cleaned_data['email']
telephone = form.cleaned_data['telephone']
address = form.cleaned_data['address']
city = form.cleaned_data['city']
state = form.cleaned_data['state']
postcode = form.cleaned_data['postcode']
if password == password2:
if (password_verification(password)) == 3:
if (username_verification(username)) == False:
form.save()
return HttpResponseRedirect('/login')
else:
return HttpResponseRedirect('/create_account')
else:
return HttpResponseRedirect('/create_account')
else:
return HttpResponseRedirect('/create_account')
return render(request, "create_account.html", {'form': form})
В окне Джанго администратора, пользователь регистрируется в базе данных с полями create_user, но ни один из добавленных настраиваемых полей не сохраняет в доступной колонке нс. Любая помощь была бы замечательной, это действительно подшучивало. Ниже изображен пустые поля, ура!
Я изменил название модели на профиль, благодарю вас за предложение. Будет ли form.save() идти в файле представлений? – Abjilla22
да ... подождите, я немного поменяю свой ответ, чтобы вы лучше поняли ... –
@ Abjilla22, пожалуйста, см. Мой обновленный ответ –