Можно ли использовать Form Mixin с ListView и отправлять несколько значений одной кнопкой?
Можно ли использовать представление списка для реализации макета в стиле викторины?
Я пытаюсь создать приложение для викторины, которое принимает вид списка и задает вопрос после каждого экземпляра класса. Проблема в том, что я не могу понять, как сделать так, чтобы моя форма отправляла все значения сразу в методе post.
class GameListView(FormMixin,ListView):
form_class = AnswerForm
model = Game
def get_success_url(self):
return reverse('gameAPP:gameList')
def post(self, request, *args, **kwargs):
form = self.get_form()
if form.is_valid():
return self.form_valid(form)
else:
return self.form_invalid(form)
def form_valid(self, form):
answer = form.cleaned_data['answer']
return super().form_valid(form)
#Models
class Game(models.Model):
player = models.ForeignKey('auth.User', on_delete=models.CASCADE)
question = models.CharField(max_length=1000)
correctAnswer = models.CharField(max_length=1000)
def answer_onion(self):
print(True)
Answer.answer = True
#Answer.answer.save()
def answer_other(self):
print(False)
Answer.answer = False
#Answer.answer.save()
class Answer(models.Model):
question = models.ForeignKey('gameAPP.Game', on_delete=models.CASCADE, related_name="games")
answer = models.BooleanField(null=True)
#form
class AnswerForm(forms.ModelForm):
class Meta:
model = Answer
fields = ('answer', )
#my view:
{% for g in game_list %}
<h1>question: {{ g.question }}</h1>
<h3>correct answer: {{g.correctAnswer }} </h3>
{{form}}
{% endfor %}
<button type="submit">Submit</button>