如何在Django中从同一表单创建多个模型

问题描述 投票:0回答:1

我有一个用于创建带有标题,作者等的测验的创建视图,但是我的测验由链接到与该测验链接的问题模型的答案模型组成。我怎样才能以此形式创建一个完整的测验,包括问题和正确答案?

class QuizCreateView(LoginRequiredMixin, CreateView):
    model = Quiz
    fields = ['title', 'video_link', 'question_amount']

def form_valid(self, form):
    form.instance.author = self.request.user
    return super().form_valid(form)

我在模板中使用了脆皮表格

{% extends "quiz_app/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
    <div class="content-section">
        <form method="POST">
            {% csrf_token %}
            <fieldset class="form-group">
                <legend class="border-bottom mb-4">Create Quiz</legend>
                {{ form|crispy }}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-blue" type="submit">Submit</button>
            </div>
        </form>
    </div>
{% endblock content %}

TIA

django forms django-models django-class-based-views django-crispy-forms
1个回答
0
投票

[您可以使用Inlines,它允许您将模型的形式嵌入到父模型的形式中,例如,在Quiz形式中,可以有多个Question形式。

不幸的是,这仅适用于2个级别,您需要第三个级别的答案,您有两个选择:

  • 您可以创建两种不同的形式:包括多个问题形式的测验形式和包括多个答案形式的问题形式;
  • 您可以使用django-nested-admin允许您使用多个嵌套表单。

这里是简短的tutorial about django-nested-admin,该示例反映了您的需要。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.