Как вы вручную размещаете формы из набора форм? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть страница шаблона, где предполагается загрузка формы из набора форм, если запрос к базе данных возвращает FALSE.

    <form method="post" class="form">
        {% csrf_token %}

        {% for form in formset %}
        {% if comparelist.item2 %}
            <div class="col-3">{{comparelist.item2.name}}</div>
            <div class="col-3">{{comparelist.item2.price}}</div>
            <div class="col-3">{{comparelist.item2.store}}</div>            
        {% else %}
        <div>
            {{form.form-0}}
        </div>
        {% endif %}

        {% if comparelist.item3 %}
        <div class="row">
            <div class="col-3">{{comparelist.item3.name}}</div>
            <div class="col-3">{{comparelist.item3.price}}</div>
            <div class="col-3">{{comparelist.item3.store}}</div>
        </div>
        {% else %}
        <div>
            {{form.form-1}}
        </div>
        {% endif %}

        {% if comparelist.item4 %}
        <div class="row">
            <div class="col-3">{{comparelist.item4.name}}</div>
            <div class="col-3">{{comparelist.item4.price}}</div>
            <div class="col-3">{{comparelist.item4.store}}</div>
        </div>
        {% else %}
        <div>
            {{form.form-2}}
        </div>
        {%endfor%}

    <button type="submit" class="btn btn-primary">Submit</button>
    </form>

Но, очевидно, {{form.form-x}} не работает.Так как мне вставить эти формы вручную?

1 Ответ

1 голос
/ 08 июня 2019

Я до сих пор не совсем уверен, что должен делать синтаксис {{form.form-2}}. Но я думаю, что вам нужно просто обратиться к формам напрямую через их позицию, как вы делаете это с элементами списка сравнения. Так что удалите цикл for и сделайте это:

<form method="post" class="form">
    {% csrf_token %}
    {{ formset.management_form }}

    {% if comparelist.item2 %}
        <div class="col-3">{{comparelist.item2.name}}</div>
        <div class="col-3">{{comparelist.item2.price}}</div>
        <div class="col-3">{{comparelist.item2.store}}</div>            
    {% else %}
    <div>
        {{formset.forms.0}}
    </div>
    {% endif %}

    {% if comparelist.item3 %}
    <div class="row">
        <div class="col-3">{{comparelist.item3.name}}</div>
        <div class="col-3">{{comparelist.item3.price}}</div>
        <div class="col-3">{{comparelist.item3.store}}</div>
    </div>
    {% else %}
    <div>
        {{formset.forms.1}}
    </div>
    {% endif %}

    {% if comparelist.item4 %}
    <div class="row">
        <div class="col-3">{{comparelist.item4.name}}</div>
        <div class="col-3">{{comparelist.item4.price}}</div>
        <div class="col-3">{{comparelist.item4.store}}</div>
    </div>
    {% else %}
    <div>
        {{formset.forms.2}}
    </div>
    {% endfor %}

<button type="submit" class="btn btn-primary">Submit</button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...