gpt4 book ai didi

python - 将表单类型传递给 View

转载 作者:行者123 更新时间:2023-12-01 02:35:36 27 4
gpt4 key购买 nike

我想创建一个通用 View ,获取表单类型(来自 forms.py)并将其呈现为 html。我需要不同的网址将传递不同的形式。假设我在 forms.py 中有 form1 和 form2 类,我需要将表单传递给 urlpatterns,如下所示:

urlpatterns = [
url(r'^form_test1/$', views.generic_form, name='form_test', form_type = forms.form1()),
url(r'^form_test2/$', views.generic_form, name='form_test2', form_type = forms.form2()),
]

可以制作吗?如果没有,我怎样才能实现所需的泛型。

谢谢!

最佳答案

事实上,您可以使用 url() 的第三个位置参数作为传递给 View 的额外参数的字典:

url(r'^form_test1/$', views.generic_form, {'form_type': forms.form1}, name='form_test'),

请注意,您应该将类​​而不是实例传递给 View ;并记住 View 需要接受 form_type 作为参数。

但是我真的想说这是错误的做法。像这样的事情属于 View 本身。相反,捕获一个参数并在 View 中执行逻辑:

url(r'^form_test(?P<form_id>\d+)/$', views.generic_form, name='form_test'),

...

FORMS = [ forms.form1, forms.form2 ]

def generic_form(request, form_id):
FormClass = FORMS[form_id]

或者使用字典以及任何有意义的命名方案。

关于python - 将表单类型传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46274524/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com