Как создать модельную форму и сохранить объект в Django?
models.py:
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
def __str__(self):
return self.choice_text
class UserChoice(models.Model):
user_choice = models.ForeignKey(Choice, on_delete=models.CASCADE)
def __str__(self):
return self.user_choice
views.py:
def index(request):
question_list = Question.objects.all()
context = {'question_list': question_list}
return render(request, 'polls/index.html', context)
index.html.py:
<form method="post"">
{% csrf_token %}
{% for question in question_list %}
<h3>{{question.question_text}}</h3>
<select hidden="" name="form-{{ forloop.counter0 }}-question" id="id_form-{{ forloop.counter0 }}-question">
<option value="{{question.id}}" selected="">{{question.question_text}}</option>
</select>
{% for answer in question.choice_set.all %}
<label for="id_form-{{ forloop.counter0 }}-answer">
<input type="radio" name="form-{{ forloop.parentloop.counter0 }}-answer" id="id_form-{{ forloop.counter0 }}-answer" value="{{answer.id}}">
{{answer.choice_text}}
</label> <br>
{% endfor %}
{% endfor %}
<br />
<br />
<input type="submit" value="Submit">
</form>
Вопрос: Как сохранить выбор пользователя с помощью модели UserChoice для каждого вопроса? Как создать такую модель? Является ли моя модель UserChoice хорошей для хранения этой информации?
P.s. Я знаю, как создать простую ModelForm, но здесь мои небольшие знания о Django остановили меня :). Пока что я понятия не имею, как создать эту форму, я читал о modelformset_factory, но не понял.