Django - Как превратить выпадающую форму в таблицу - PullRequest
0 голосов
/ 23 сентября 2019

Я создаю приложение в Django, и у меня возникла проблема с итерацией параметров в раскрывающемся списке формы в Django.Мне было интересно, может ли кто-нибудь помочь.

detail.html

{% for subject in subject_list %}
    <form action="" method="POST">
        {% csrf_token %}
        <table class='table table-borderless table-hover'>
                <tbody>
                <tr>
                    <td>{{ subject.subjectname }}
                        {% for field in form %}
                            {{ field.hidden }}
                        {% endfor %}
                    </td>
                </tr>
                </tbody>
        </table>
        <button type="submit" id="login-btn" class="btn">Create a new evaluation</button>
    </form>
{% endfor %}

forms.py

class CreateEvalForm(forms.ModelForm):
    subjectname = ModelChoiceField(queryset=Subject.objects, label='', empty_label="Choose subject..")

    class Meta:
        model = Evaluation
        fields = ['subjectname', ]

models.py

class Subject(models.Model):
    id = models.AutoField(primary_key=True)
    subjectname = models.CharField(max_length=255, help_text="Type the name of the subject.")
    slug = models.SlugField(max_length=200, unique=True)

В идеале мы хотим, чтобы это выглядело как на рисунке ниже: Обратите внимание , что изображение написано на датском языке, а Fag = Тема,Определить оценку = Создать новую оценку и Se оценку = Просмотреть оценку

мы хотим это

мы не хотим этого

1 Ответ

0 голосов
/ 24 сентября 2019

Я решил это с помощью комментариев, изменив цикл for для таблицы следующим образом:

<form action="" method="POST">
        {% csrf_token %}
        <table class='table table-borderless table-hover'>
                {% for option in form.fields.fagnavn.choices %}
                    {% if not forloop.first %}
                    <tbody>
                    <tr>
                        <td>{{ option.1 }}</td>
                        <td><button value="{{ option.0 }}" name="fagnavn">Opret ny evaluering</button></td>
                    </tr>
                    </tbody>
                    {% endif %}
                {% endfor %}
        </table>
    </form>

Я получил доступ к выбору в раскрывающемся списке с помощью form.fields.fagnavn.choices и исключил значение по умолчанию:"выбрать значение" с оператором if {% if not forloop.first %}

И это почти все.

...