在views.py的GET调用中,我创建了一个随机问题列表(* 它是一个复杂对象,字典列表 *),并使用return render(request, 'some_page.html', args)
将该列表发送到模板(HTML)文件。
我一次显示一个问题,一旦用户输入答案并单击“下一步”,下一个问题就会显示出来,依此类推。每次单击“下一步”时,答案都必须存储回数据库中。
如何将答案发送到后台,同时将用户引导到下一个问题?这里需要注意的一件重要事情是,一旦生成了问题列表,我就不能再生成它。我必须将该列表保存在某个地方以用于此示例,或者在每次调用时将其传递给views.py和模板。我认为在每次调用时传递列表不是一个理想的解决方案,并寻找更好的建议。我用HTML一个接一个地显示问题,并且有一个当前索引变量,我使用JS管理。
下面是我在www.example.com中的GET函数的结尾views.py:
final_data = [very, complicatedly, ordered, list]
final_data = json.dumps(final_data)
args = {"data":final_data}
return render(request, 'index.html', args)
1条答案
按热度按时间m528fe3b1#
我的回答是:我会使用 AJAX (javascript),点击-〉post -〉success +下一个问题
根据渲染中的json.dumps(),更容易显示块:
如果你只是使用像
{{data.0}}
和你不需要做
json.dumps()
我唯一能看到需要
json.dumps()
的情况是,如果您立即在JavaScript中管道化值,如在这种情况下,你需要将Python数组转换为Javascript数组。
我不知道你是如何在模板中使用
data
的,但我想我只是把它扔在那里。旁注:Idk if 1存储数据的方法更好。我个人喜欢隐藏的Div,而不是Javascript Vars,但它确实增加了用户发现和更改它们的风险(在我的使用中概率很低)