Python 是否可以从控制器调用类的as_view()方法?

Python 是否可以从控制器调用类的as_view()方法?,python,django,forms,Python,Django,Forms,我需要传递一个在控制器中初始化的变量 它看起来像是路由: urlpatterns = [ path('form/check/', room_check, name='room_check'), path('contact/', BookWizard.as_view(FORMS, initial_dict=initial)), ] 书本向导-从formtools模块的SessionWizardView继承的类 以下是创建变量的控制器的一部分: initial = {

我需要传递一个在控制器中初始化的变量

它看起来像是路由:

urlpatterns = [
    path('form/check/', room_check, name='room_check'),
    path('contact/', BookWizard.as_view(FORMS, initial_dict=initial)),
]
书本向导-从
formtools
模块的SessionWizardView继承的类

以下是创建变量的控制器的一部分:

initial = {
           '0': {'check_in_date': check_in_date,
                 'date_of_eviction': date_of_eviction,
                 'category': category,
                 'number_of_adults': number_of_adults,
                 'number_of_children': number_of_children}}

return redirect(BookWizard.as_view(FORMS, initial_dict=initial))
因此,我得到以下错误:


也许还有另一种方法可以传递变量并调用方法,是吗?

否,因为它的目的是找到相同的函数。函数基于引用相等而相等。但在这里,您构造了两个可能具有相同功能的函数,但它们仍然是两个不同的对象

也就是说,你不需要这个,这样做也是相当“不雅”的。更具Pythonic的是为视图命名,并引用名称:

urlpatterns = [
    path('form/check/', room_check, name='room_check'),
    path('contact/', BookWizard.as_view(FORMS, initial_dict=initial), name='contact'),
]
urlpatterns=[
路径('form/check/',room\u check,name='room\u check'),
路径('contact/',BookWizard.as_view(FORMS,initial_dict=initial),name='contact'),
]
在您看来,请参考以下内容:

return redirect('contact')
返回重定向(“联系人”)

请注意,除了URL、cookie或会话变量中编码的重定向调用外,您不能在重定向调用中“传递参数”。因此,
初始
将是您在
urlpatterns
中设置的,无论您在
重定向
中设置了什么
初始
,也就是说,没有其他方法传输数据?对不起,如果我误解了。我还在学习英语:(@elVladosios:a
redirect
只是一个HTTP响应,它对浏览器说“嘿,你应该访问这个url”…”。浏览器然后访问那个url(如果浏览器允许的话)。因此,你的Web服务器检索一个新请求,以及一个(正确的)文件中的所有请求Web服务器是独立的。因此,您需要在URL、浏览器将在下一个请求中发送的Cookie中对所需数据进行编码,或将其存储在数据库中(以使您的下一个请求可以检索该数据的方式)。因此,不,您需要以浏览器可以“传播”的形式对数据进行编码这是下一个请求。很好。非常感谢!