我正在尝试在表单中进行多项选择。我不想使用完整的查询集,而是要注释一些值。
注释
productos_incluir = ProductosBase.objects\
.filter((Q(region__region__icontains="Argentina") | Q(region__region__icontains="Todas")) & Q(estatus_contenido__id__gt=2))\
.values("marca__marca", "producto", "packaging").annotate(variantes=Sum("producto"))\
.order_by("marca__marca", "producto", "packaging")
表单字段
productos = forms.ModelMultipleChoiceField(
widget=forms.CheckboxSelectMultiple, queryset=productos_incluir, required=False)
视图
<div>{{ filter_form.productos }}</div>
结果
我在视图中显示了列表,但是在复选框旁边得到了“标签”,如下所示:
{'marca__marca':'Cramer','producto':'Cutter-Shark','packaging': “ Bolsa个人”,“变体”:0.0}
我的愿望
我想要的是能够显示没有字段信息的标签。我想这与注释时查询集类型的变化有关,但是我找不到如何显示它。
填字游戏|切刀-Shark Bolsa |个人
提前谢谢!
答案 0 :(得分:0)
如果我正确理解了您的问题,也许这就是您想要的:
您的查询集提供字典,因此您必须使用.items
{% for key, value in your_dict.items %}
{{ key }} = {{ value }}
{% endfor %}
所以在您的情况下:
<p>
{% for key, value in filter_form.productos.items %}
{{ value }} {% if not forloop.last %}|{% endif %}
{% endfor %}
</p>