2

我正在做一个 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 的方式?

任何帮助将不胜感激,并提前感谢您!

PS 如果有区别,我正在使用 Django 1.5.1 和 Python 2.7。

4

1 回答 1

0

当用户单击“播放”链接时,使用 Ajax 呈现您的弹出窗口(即 render_to_string)。或使用 JQuery 显示您的弹出窗口。两者都只需要一个 onClick 和一些相当东的代码来编写代码。如果您从原始模板加载中加载了所有内容,则需要向服务器 JQuery 发送数据和从服务器 JQuery 接收数据。

顺便说一句,在视图中(从您的模板)设置变量的唯一方法是通过请求发送到。这涉及重新加载页面。阿贾克斯好多了:)

于 2013-08-29T09:56:44.287 回答