Django RadioButton в HTML
В моей пользовательской форме есть radiobutton для выбора пола пользователя. Когда я пытаюсь отправить форму, она возвращает мне эту ошибку
'UserInfo' object has no attribute 'is_valid'
Поскольку эта ошибка началась после того, как я отредактировал свой html-шаблон, используя только html, а не {{ form.as_p }}
, я хотел узнать, может ли проблема быть в том, как я написал ввод radiobutton, поскольку я не уверен, что это правильный способ его использования.
Спасибо всем за помощь!
model.py
class UserInfo(models.Model):
gender_choice = (('Male', 'Male'),('Female', 'Female'))
user = models.OneToOneField(User, blank=True, null=True, on_delete=models.CASCADE)
first_name = models.CharField(max_length=120)
last_name = models.CharField(max_length=120)
gender = models.CharField(max_length=120, choices=gender_choice)
forms.py
class UserInfo(ModelForm):
class Meta:
model = UserInfo
fields = ('first_name', 'last_name', 'gender')
views.py
def add_information(request):
submitted = False
if request.method == "POST":
form = UserInfo(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('add_information?submitted=True')
else:
form = UserInfo
if 'submitted' in request.GET:
submitted = True
return render(request, 'accounts/profile/tempplate.html', {'form': form, 'submitted':submitted})
template.html
<form action="" method=POST>
{% csrf_token %}
<label>First Name:</label>
<div class="input-group mb-2">
<div class="input-group-append">
</div>
<input type="text" name="first_name" placeholder="">
</div>
<label>Last Name:</label>
<div class="input-group mb-2">
<div class="input-group-append">
</div>
<input type="text" name="last_name" placeholder="">
</div>
<label>Gender:</label>
<div class="input-group mb-2">
<div class="input-group-append">
</div>
<input type="radio" id="male" name="gender" value="male">
<label for="male">Male</label>
<input type="radio" id="female" name="gender" value="female">
<label for="female">Female</label>
</div>
Спасибо всем!
в ваших моделях
class UserInfo(models.Model):
gender_choice = [
('Male', 'Male'),
('Female', 'Female')
]
user = models.OneToOneField(User, blank=True, null=True, on_delete=models.CASCADE)
first_name = models.CharField(max_length=120)
last_name = models.CharField(max_length=120)
gender = models.CharField(max_length=120, choices=gender_choice)
и в ваших взглядах
def add_information(request):
submitted = False
if request.method == "POST":
form = UserInfo(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('add_information?submitted=True')
else:
form = UserInfo()
if 'submitted' in request.GET:
submitted = True
return render(request, 'accounts/profile/tempplate.html', {'form': form, 'submitted':submitted})