在Django中的ModelChoiceField中访问对象

时间:2014-11-08 21:20:55

标签: python django django-models django-forms django-views

我有一个ModelChoiceField我使用了widget RadioSelect

我在模板中迭代选项,但我只能获得choice.tagchoice.choice_label。我将访问特定对象中的所有字段,而不仅仅是选择标签。

我知道我可以使用label_from_instance来更改choice_label但仅仅有1个字段是不够的。

修改

现在我用{% for choice in form.field %}{{ choice.tag }}{% endfor %}进行迭代。选择仅包含tagchoice_label。我希望它还包含choice.object或其他内容,以便我可以使用choice.object.idchoice.object.full_namechoice.object.gender等。

1 个答案:

答案 0 :(得分:1)

使用类似的东西:

{% for field in form.visible_fields %}{# loop over form fields #}
    {% if field.name == "choice_field_name" %}
        {% for choice in field.queryset %} {# loop over choices #}
            {# here you access to choice object #}
        {% endfor %}
    {% endif %}
{% endfor %}