So erhalten Sie ModelChoiceField-Instanzen in der Vorlage

Ich habe eine ModelForm, die ein ModelChoiceField mit dem RadioSelect-Widget enthält.

<code>class MyAForm(forms.ModelForm):
    one_property = models.ModelChoiceField(
        widget=forms.RadioSelect,
        queryset=MyBModel.objects.filter(visible=True),
        empty_label=None)
    class Meta:
        model = MyAModel
</code>

Es gibt Attribute in MyBModel, die ich neben dem Optionsfeld anzeigen möchte. Ich würde überschreibenlabel_from_instance Auf einer Unterklasse von ModelChoiceField kann ich jedoch nicht tun, was ich möchte, da das Optionsfeld in einer Tabelle mit einer Zeile für jedes Auswahlelement angezeigt werden soll.

Also irgendwo in meiner Vorlage möchte ich etwas wie ...

<code>{% for field in form.visible_fields %}
    {% if field.name == "one_property" %}
    <table>
        {% for choice in field.choices %}
            <tr>
                <td><input value="{{choice.id}}" type="radio" name="one_property" />{{choice.description}}</td>
                <td><img src="{{choice.img_url}}" /></td>
            </tr>
        {% endfor %}
    </table>
    {% endif %}
{% endfor %}
</code>

Leider gibt field.choices ein Tupel der Objekt-ID und der Bezeichnung zurück und keine Instanz aus dem Abfragesatz.

Gibt es eine einfache Möglichkeit, Instanzen der Auswahlmöglichkeiten für ein ModelChoiceField abzurufen, die in einer Vorlage verwendet werden sollen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage