Django-修改通用详细视图以管理表单和发布数据-Django

Django-修改通用详细视图以管理表单和发布数据-Django,django,django-forms,django-generic-views,Django,Django Forms,Django Generic Views,我是django的新手 我想创建一个网页,显示有关特定对象的信息,并使用表单发送有关此对象的消息 在开始时,我使用了详细视图来显示有关对象的信息。 然后,根据我的消息类创建了一个消息表单 我使用get_context_data在模板的上下文中传递表单 我想知道是否有办法在同一视图中管理表单的验证,还是应该返回到函数视图 我已经看到FormMixin能帮上忙。 你能告诉我这是不是正确的解决方案吗 谢谢你的帮助 我的看法是: class LoanDetailView(DetailView):

我是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>

{%csrf_令牌%}
{{msg|u form | crispy}}
特使

您可以使用此模式

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