寻找基于Django的类视图和有多种形式的单页的例子(Looking for Django Clas

2019-06-26 22:26发布

我一直在寻找修远为如何让使用较新的Django的基于类的观点方法在一个页面上显示两个独特的形式。

任何人都可以参考什么? 或者提供一个基本的例子。 谷歌是不是被我的“朋友”这一点。

Answer 1:

关键是,你甚至不必使用的一个FormView的子类来处理形式。 你只需要添加机械手动处理的形式。 在你使用的情况下FormView的子类,它只会处理且只有1个形式。 所以,如果你需要两种形式,你只需要手动处理的第二个。 我使用DetailView作为基类只是为了显示你甚至不必从继承FormView类型。

class ManualFormView(DetailView):
    def get(self, request, *args, **kwargs):
        self.other_form = MyOtherForm()
        return super(ManualFormView, self).get(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        self.other_form = MyOtherForm(request.POST)
        if self.other_form.is_valid():
            self.other_form.save() # or whatever
            return HttpResponseRedirect('/some/other/view/')
        else:
            return super(ManualFormView, self).post(request, *args, **kwargs)

    def get_context_data(self, **kwargs):
        context = super(ManualFormView, self).get_context_data(**kwargs)
        context['other_form'] = self.other_form
        return context


文章来源: Looking for Django Class based views and having multiple forms on a single page examples