我正在开发一个Django项目,并且遇到了一个我在Google或Stackoverflow上找不到的问题。所以我认为是时候问我的第一个问题了。
我想做的是: 我有一个网站,用户有一个下拉菜单,他们选择和选项,然后单击播放按钮。这是用Django表格制作的。他们应该得到一个弹出窗口(仅使用HTML和CSS制作)。因此,唯一需要做的是在视图中将变量设置为0到1,然后在我的模板中呈现弹出窗口。这是为了让您更好地了解我的意思的代码:
....
{% if playing_track == 1 %}
<div class="popup_background">
<div class="popup_window">
<p class="popup_text">Route {{ Name_Track }} is gestart</p>
</div>
</div>
{% endif %}
....
因此,当playing_track设置为1时,它将显示弹出窗口。 以下是需要处理它的视图代码:
....
playing_track = []
if request.method == 'POST':
form_run_track = RouteRun(request.POST)
if form_run_track.is_valid():
Name_Track = form_run_track.cleaned_data['Name']
playing_track = 1
return HttpResponseRedirect('/tracks/')
else:
return HttpResponseRedirect('/error/')
else:
form_run_track = RouteRun
....
现在谈到真正的问题,为什么这不起作用?
我觉得它与设置为1的值有关,但当重新加载/重定向时,它再次设置为0。
我真的是Django的初学者(尽管已经做了很多HTML / CSS)并且之前用C语言进行过编程,也许我尝试过一些在Django中没有真正做过的事情,但更多的是C类似的方式?
非常感谢任何帮助,并提前感谢您!
P.S。我正在使用Django 1.5.1和Python 2.7,如果这有所不同。
答案 0 :(得分:0)
当用户点击“播放”链接时,使用Ajax渲染弹出窗口(即render_to_string)。或者使用JQuery来显示弹出窗口。两者都需要一个onClick和一些相当东部来编写代码。如果您需要从原始模板加载中加载所有内容,则需要向服务器JQuery发送数据和从服务器JQuery接收数据。
BTW在视图中设置变量(从模板中)的唯一方法是通过请求发送。这涉及重新加载页面。 Ajax好多了:))