Django - 如何在视图中创建变量并让它处理模板函数

时间:2013-08-29 09:23:58

标签: django django-templates django-views

我正在开发一个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,如果这有所不同。

1 个答案:

答案 0 :(得分:0)

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

BTW在视图中设置变量(从模板中)的唯一方法是通过请求发送。这涉及重新加载页面。 Ajax好多了:))