Django - обрабатывать два элемента формы для одной модели в одном шаблоне - PullRequest
1 голос
/ 01 февраля 2020

Я использую следующие UpdateView для изменения некоторых значений в базе данных:

class MyUpdateView(UpdateView):
    model = MyModel
    fields = ['VideoURL', 'MainDescription']
    template_name = 'myapp/edit.html'

Это мой шаблон:

    <div class="row">
        <div class="col-12 col-lg-7">
            <form method='post' class="card shadow-soft border p-4 mb-4">
                {% csrf_token %}
                <h5 class="mb-4">General</h5>
                <div class="form-group">
                    <label for="MainDescription">Title</label>
                    {{form.MainDescription|add_class:"form-control shadow-soft"}}
                </div>
                <div class="row">
                    <div class="col">
                        <button class="btn btn-primary btn-dark mt-2 animate-up-2"
                            type="submit">Update</button>
                    </div>
                </div>
            </form>
        </div>
        <div class="col-12 col-lg-5">
            <form method='post' class="card shadow-soft border p-4 mb-4">
                {% csrf_token %}
                <div class="form-group">
                    <label for="VideoURL">Video URL:</label>
                    {{form.VideoURL|add_class:"form-control shadow-soft"}}
                </div>
                <div class="row">
                    <div class="col">
                        <button class="btn btn-primary btn-dark mt-2 animate-up-2 text-right"
                            type="submit">Update</button>
                    </div>
                </div>
            </form>
        </div>
    </div>

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

<div class="col-12 col-lg-5">
    <form method='post' class="card shadow-soft border p-4 mb-4">
        {% csrf_token %}
        <div class="form-group">
            <label for="VideoURL">Video URL:</label>
            {{form.VideoURL|add_class:"form-control shadow-soft"}}
        </div>
        <div class="form-group">
            <label for="MainDescription">Main Description:</label>
            {{form.MainDescription|add_class:"form-control shadow-soft"}}
        </div>
        <div class="row">
            <div class="col">
                <button class="btn btn-primary btn-dark mt-2 animate-up-2 text-right"
                    type="submit">Update</button>
            </div>
        </div>
    </form>
</div>

Что мне здесь не хватает? Кто-нибудь может дать мне подсказку? Спасибо

Редактировать

Это связано с тем, как формы отображаются в форме HTML. Они должны быть независимыми:

enter image description here

...