当前位置: 首页 > 面试题库 >

带有表单的基于Django类的视图ListView

子车轶
2023-03-14
问题内容

主视图是一个简单的分页ListView,我想向其中添加搜索表单。

我认为这样可以解决问题:

class MyListView(ListView, FormView):
    form_class = MySearchForm
    success_url = 'my-sucess-url'
    model = MyModel
    # ...

但是显然我错了..我在官方文档中找不到该怎么做的方法。

建议?


问题答案:

这些答案对引导我朝正确的方向大有帮助。谢谢大家

对于我的实现,我需要一个窗体视图,该窗体视图同时在get和post上返回ListView。我不喜欢重复get函数的内容,但需要进行一些更改。现在,self.form也可以从get_queryset获得该表单。

from django.http import Http404
from django.utils.translation import ugettext as _
from django.views.generic.edit import FormMixin
from django.views.generic.list import ListView

class FormListView(FormMixin, ListView):
    def get(self, request, *args, **kwargs):
        # From ProcessFormMixin
        form_class = self.get_form_class()
        self.form = self.get_form(form_class)

        # From BaseListView
        self.object_list = self.get_queryset()
        allow_empty = self.get_allow_empty()
        if not allow_empty and len(self.object_list) == 0:
            raise Http404(_(u"Empty list and '%(class_name)s.allow_empty' is False.")
                          % {'class_name': self.__class__.__name__})

        context = self.get_context_data(object_list=self.object_list, form=self.form)
        return self.render_to_response(context)

    def post(self, request, *args, **kwargs):
        return self.get(request, *args, **kwargs)


class MyListView(FormListView):
    form_class = MySearchForm
    model = MyModel
    # ...


 类似资料:
  • 问题内容: 我有以下型号: 我知道这是可能的: 然后通过标准视图进行处理。 现在我在想,是否有一种方法可以使用基于类的视图(而不是用于管理界面)来实现相同的目的(意思是:使用内联代码来添加/编辑属于账单的项目)。 问题答案: 关键点是: 产生内小号使用: 在的类中返回: 用于保存表单和表单集:

  • 问题内容: 我正在寻找有关其他人如何设计此方法的意见。我将提供基于类(Django组)的视图。 例如,用户组将确定他或她将有权访问哪些视图/模板。我正在考虑也许在表中存储用于查看功能的路径,以确定用户的链接栏将由什么组成。过滤器规范也可以存储,以确定哪些行将填充这些模板。 医院护理单位就是一个很好的例子。一个单位的护士不必看整个医院的病人。他们只需要去看病人。同一部门的医生也只需要看望那些患者,但

  • 问题内容: 我试图实现一个显示表集的选择。如果是第一次请求该站点,则应显示数据集。我希望POST提交,但是GET也可以。 这是一个很容易处理的问题,但是对于基于类的视图,我很难理解。 我的问题是,由于对基于分类的视图的了解有限,导致出现各种错误。我已经阅读了各种文档,并且了解了直接查询请求的视图,但是一旦我想向查询语句中添加表单,就会遇到不同的错误。对于以下代码,我收到了。 根据表单条目(否则选择

  • 问题内容: 我想对表单使用django 1.3的基于类的通用视图,但有时必须在一种表单中管理多个表单类。但是,看起来基于FormMixin的现有视图假定了一个表单类。 通用视图是否有可能,我将如何做? 编辑:澄清一下,我有一种形式,但不止一种(基于ModelForm的)类。例如,在django文档的inline_formset示例中,我想展示一个页面,在其中可以以一种形式一次编辑作者和他的书: 问

  • 问题内容: 我不清楚在Django 1.5中如何最好地在基于类的视图中访问URL参数。 考虑以下: 视图: URLCONF: 我想在我的视图中访问参数,因此可以执行以下逻辑: 例如,如何最好地访问CBV中被子类化的url参数,理想情况下应将逻辑放置在哪里?在某种方法上? 问题答案: 要在基于类的视图中访问url参数,请使用或,这样你就可以通过

  • 前言 欢迎来到系列教程的第六部分!在这篇教程中,我们将详细探讨基于类的视图(简称CBV)。我们也将重构一些现有的视图,以便利用内置的基于类的通用视图(Generic Class-Based Views)。 这篇教程我们还将讨论许多其他主题,例如如何使用分页,如何使用markdown以及如何添加简单的编辑器。我们还将探索一个名为 Humanize 的内置软件包,用于对数据进行“人为操作”。 好了,伙