Django 按钮点击渲染视图两次

Django button click rendered View twice

我是 Django 的新手,仍在学习中。我会尽量解释我的问题。在我的模板中单击按钮,我想使用一些值和变量:

<form method='get' action=''>
<input type="submit" value="{{ answer1 }}" name="btn1" />
<input type="submit" value="{{ answer2 }}" name="btn2" />
<input type="submit" value="{{ answer3 }}" name="btn3" />
<input type="submit" value="{{ answer4 }}" name="btn4" />
</form>

我的views.py:

class MyView(TemplateView):

def get(self, request, *args, **kwargs):
    obj = MyObject()
    self.create_dict(q_obj)      

    if request.GET.get('btn1'):
       # some code...
return render(request, self.template_name, { ... })

现在的问题是每当我单击按钮时,使用的字典变量都会被下一个替换,因为有一个新的渲染。

[12/Jan/2022 21:48:46] "GET /quizapp/home/subject/ HTTP/1.1" 200 5267
{'answer': <Answer: 3>, 'correct': False}
{'answer': <Answer: 5>, 'correct': False}
{'answer': <Answer: 2>, 'correct': True}
{'answer': <Answer: 7>, 'correct': False}
[12/Jan/2022 21:48:47] "GET /quizapp/home/subject/round/ HTTP/1.1" 200 7864
{'answer': <Answer: 4>, 'correct': True}
{'answer': <Answer: 2>, 'correct': False}
{'answer': <Answer: 6>, 'correct': False}
{'answer': <Answer: 1>, 'correct': False}

我想使用第一组词典,但我更改的所有内容都与第二组词典有关。我尝试使用一些重定向命令进行修复,但没有任何效果...... 我在这里误解了一些 Django(GET/POST) 技术? 如果有人能帮助我,谢谢 ;)

在 Internet 上的任何地方提交按钮意味着您已完成此表单的处理并想进入下一步。由于您所有的测验选择都是提交按钮,所以当您点击它们时得到一个新的渲染并不奇怪。

只要您点击这些按钮中的任何一个,您就在提交表单。您需要实现一个单选按钮(选择)来避免这种情况。表单末尾只有一个提交按钮。 An example is provided here

每次您提交表单时,它都会重新呈现。因此,只有在您想要获取新表单并转到下一步时才应按提交。