Django 多选复选框

0 投票
1 回答
2488 浏览
提问于 2025-04-11 19:13

我有一个对象列表,每个对象都有一个复选框,用户可以选择多个复选框。这个列表是通过查询得到的。

我该如何在界面上标记哪些复选框已经被选中了呢?在模板语言中似乎没有“in”这样的操作符。

我想要的效果大概是这样的:

<input {% if id in selectedIds %}checked {% endif %}>

1 个回答

0

你可以使用一个模板标签,就像这个代码片段中的评论所提到的那样:

http://www.djangosnippets.org/snippets/177/

@register.filter
def in_list(value,arg):
    return value in arg

在模板中使用:

The item is 
{% if item|in_list:list %} 
    in list 
{% else %} 
    not in list
{% endif %}

虽然不是特别聪明,但它能正常工作。

撰写回答