【问题标题】:Two or more UpdateView in one view一个视图中有两个或多个 UpdateView
【发布时间】:2015-07-03 04:39:27
【问题描述】:

我的表单太多了,我想超过 60 个,每个表单都是 ModelForm 的模型,用户可以更新他们填写的数据,我为每个表单使用 UpdateView,我的意思是,一个每个表单的视图,所以我有太多视图,也许遵循 django 的哲学“不要重复自己”我可以只有一个视图和一个模板来更新所有表单吗?

操作如下:

每个表单都是一个模型,每个表单都有一个唯一的 URL,因此 django 必须根据将其传递给 URL 的 pk 检测必须呈现哪个更新表单。直到这里我才这样做,但正如我之前所说,每个表单的每个视图,我需要使用一个模板在一个视图中为所有表单执行此操作。

【问题讨论】:

    标签: django django-forms django-views django-class-based-views


    【解决方案1】:

    您可以在 url 配置中将选项传递给视图类:

    urlpatterns = [
        ...
        url(r'^(?P<pk>\d+)/$', UpdateView.as_view(model=MyModel, form_class=MyModelForm))
    ]
    

    这些选项可以是视图类中存在的任何属性,并将覆盖该实例的值。

    【讨论】:

    • 谢谢,这行得通。但是有没有办法为所有 url 传递一个唯一的模板,根据参数只呈现一个表单?
    • template_name 是您可以通过这种方式传递的另一个选项。
    • 不错!我认为只能将一个模板传递给一个视图
    猜你喜欢
    • 1970-01-01
    • 2013-06-14
    • 2015-07-29
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多