Django как сделать так, чтобы выбранное поле отображалось в виде метки

Я создаю с:

class FooForm(forms.ModelForm):
    class Meta:
        model = foo
        fields = '__all__'

автоформа модели. Это работает нормально. Когда я теперь отображаю поля с:

{% for field in formfields %}
    {{ field}}
{% endfor %}

создайте мне это поле для foreignkey, как selectfield:

<select name="foo" required id="id_foo">
  <option value="">---------</option>
  <option value="1">A</option>
  <option value="2" selected>B</option>
  <option value="3">C</option>
  <option value="4">D</option>

Я хочу отобразить только выбранную опцию как ярлык:

A

Если вы хотите просто отобразить значение вместо элемента <select>, то у вас есть два варианта:

  1. Отрисуйте поле как обычно, но установите поле формы как readonly, чтобы его нельзя было редактировать, затем вы можете стилизовать его по-другому, чтобы пользователю было очевидно, что его нельзя изменить

    .
  2. Просто отобразите значение поля формы с помощью {{ field.value }} внутри элемента <p> или чего-то еще - помните, что оно не будет передано в вашу форму через request.POST, если у вас нет ввода. Если вам нужно передать значение в форму, то вы можете спрятать input где-нибудь в форме, чтобы он не мешал валидации формы.

Вернуться на верх