python - 是否可以从控制器调用类的 as_view() 方法?
问题描述
我需要传递一个在控制器中初始化的变量。
它看起来像路由:
urlpatterns = [
path('form/check/', room_check, name='room_check'),
path('contact/', BookWizard.as_view(FORMS, initial_dict=initial)),
]
Book Wizard - 继承自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'),
]
在您看来,请参考:
return redirect('contact')
请注意,除了在 URL、cookie 或会话变量中编码的重定向调用之外,您不能在重定向调用中“传递参数”。因此,无论您在 中设置什么,都将initial
是您在 中设置的那个。urlpatterns
initial
redirect
推荐阅读
- python - Sqlalchemy-Python 加二 Base Query
- c# - 我想使用 C# api 实现共享点文档搜索
- dynamics-business-central - 如何在 AL Business Central 中的 query.open() 之后在 while 循环体中的查询对象中应用 SetFilter
- ag-grid - 如何在 ag-grid React 中动态更改 GridOptions,特别是从树模型到非树模型?
- odoo - 创建和编辑many2many关系odoo 11中没有操作按钮
- r - 如何配置 RStudio 的默认设置?
- powershell - 根据相同的列值合并csv的行
- javascript - open-wc/karma ChromeHeadless 测试 - 无法构造“HTMLElement”:此实例已构造
- angular - D3饼图不显示图例
- javascript - 如何通过 $() 的索引选择元素?