Django - 修改一个通用的详细视图来管理表单和发布数据 - Django - Django

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

我是一个新的django用户,我想建立一个网页,并显示特定对象的信息,并有一个表单来发送这个对象的信息。

我想建立一个网页,显示一个特定对象的信息,并有一个表单来发送关于这个对象的消息。

一开始,我使用了一个细节视图来显示对象的信息,然后基于我的消息类创建了一个消息表单。

我使用get_context_data来传递模板上下文中的表单。

我想知道是否有办法在同一个视图中管理表单的验证,或者我应该回到函数视图中来?

我看到FormMixin可以帮助我,你能告诉我这是否是正确的解决方案。

谢谢您的帮助

我的看法。

class LoanDetailView(DetailView):

    model = Loan

    def get_context_data (self, **kwargs):
        context = super(LoanDetailView, self).get_context_data(**kwargs)
        msg_form = MessageForm()
        context['msg_form'] = msg_form

        return context

在我的模板中

        <form method="POST"> 
            {%csrf_token%}
            <fieldset class="form-group">
                {{ msg_form | crispy  }}
            </fieldset>
            <div class="form-group">
                <button class="btn btn-outline-info" type="submit"> Envoyer </button>
            </div>
      </form>
django django-forms django-generic-views
1个回答
1
投票

你可以使用这种模式

class LoanDetailView(DetailView):
    def get_context_data(self, **kwargs):
        [...]

    def post(self, request, *args, **kwargs):
        form = MessageForm(request.POST)
        if form.is_valid():
            [...]  # logic similiar as in function based view
© www.soinside.com 2019 - 2024. All rights reserved.