У меня есть ModelForm, который содержит ModelChoiceField с использованием виджета RadioSelect.
class MyAForm(forms.ModelForm):
one_property = models.ModelChoiceField(
widget=forms.RadioSelect,
queryset=MyBModel.objects.filter(visible=True),
empty_label=None)
class Meta:
model = MyAModel
В MyBModel есть атрибуты, которые я хочу отобразить рядом с переключателем. Я бы переопределил label_from_instance
в подклассе -класса ModelChoiceField, но это не позволяет мне делать то, что я хочу, поскольку я хочу, чтобы переключатель отображался внутри таблицы, в которой есть строка для каждого элемента выбора.
Итак, где-то в моем шаблоне я хочу что-то вроде...
{% 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 %}
К сожалению, field.choices возвращает кортеж с идентификатором объекта и меткой, а не экземпляр из набора запросов.
Есть ли простой способ получить экземпляры вариантов для ModelChoiceField для использования в шаблоне?