Django html for,if等

hag*_*utm 2 html python tags django

我正在尝试在djnago-python中对我的数据进行简单的for循环.

我想迭代列表并检查某个元素x是否具有特定的字段值.如果是这样,我想显示一个删除选项,如果不显示添加选项.

它应该用普通语言看起来像这样:

flag = false
for x in list:
    if x.game == KNOWN_GAME:
        <show remove link>
        flag = true
        break
endfor
if flag == false:
    <show add link>
Run Code Online (Sandbox Code Playgroud)

问题是我找不到正确的方法:没有中断,没有变量可以创建(标志),我不知道如何使用loop.last.

有什么建议或某个地方我可以找到我想要的这个标签吗?

编辑 我在使用视图的东西时遇到了麻烦.我的KNOWN_GAME来自html页面(来自一些for循环).我有办法将它从html传递到视图中的函数吗?

Yuj*_*ita 5

Django对模板中许多你无法做的事情的回答就是在视图中做到这一点.

一般来说,任何复杂的逻辑都应该在视图中完成.Django甚至不支持您使用的变量声明flag=True.我们有with标签,但它定义的变量必须在定义块中使用.

视图

show_remove_link = False
if any(filter(lambda x: x.game == KNOWN_GAME, my_list)):
    show_remove_link = True

return render_to_response("mytemplate.html", {'show_remove_link': show_remove_link})
Run Code Online (Sandbox Code Playgroud)

模板

{% if show_remove_link %}
    Show Remove Link
{% else %}
    Show Add Link
{% endif %}
Run Code Online (Sandbox Code Playgroud)