访问模板标记中modelChoiceField的查询集

时间:2014-04-16 10:54:12

标签: django django-forms

我有一个有色域的模型

class EventCategory(models.Model):
    name = models.CharField(max_length = 10)
    color = models.CharField(max_length = 8)

和事件模型

class Event(models.Model):
    #fields
    category = models.ForeignKey(EventCategory)

如何在模板标记中访问modelChoice查询集。做这样的事情不起作用(假设我有一个表格发送到我的模板)

<select name="category" id="id_category">
    {%for category in form.category.queryset%}
        <option value="{{category.pk}} style="background-color:{{category.color}};">category.name</option>
    {%endfor%}  
</select>

我知道在我的python文件中我可以做这样的事情:

form = EventForm()
for c in form.fields['category'].queryset:
    print c

并且会给我它的EventCategory实例。但是我怎样才能在模板标签中做同样的事情呢?

编辑得到了!!!

{%for category in in form.category.field.queryset%}
    etc
{%endfor%}

1 个答案:

答案 0 :(得分:1)

得到了!!!

{%for category in in form.category.field.queryset.all%}
    etc
{%endfor%}

虽然我现在处理一个新问题,但也许你知道它为什么会发生。如果我添加一个新类别,它将不会显示在选择框中,直到我重新启动服务器。

编辑:当我像{{form.category}}

一样使用它时,它正常工作

EDIT2:现在编辑它可以正常工作。