Python Django类视图:\ uu init__
我想从URL中获取Python Django类视图:\ uu init__,python,django,classview,Python,Django,Classview,我想从URL中获取值,并将其用作类中的\uuu init\uuu参数 urls.py url(r'^(?P<Model>\w+)/foo/$', views.foo.as_view(), name='foo_class'), views.py class foo(CreateView): def __init__(self, **kwargs): text = kwargs['Model'] # This is not working
值,并将其用作类中的\uuu init\uuu
参数
urls.py
url(r'^(?P<Model>\w+)/foo/$', views.foo.as_view(), name='foo_class'),
views.py
class foo(CreateView):
def __init__(self, **kwargs):
text = kwargs['Model'] # This is not working
text = kwargs.get('Model') # Neither this
Bar(text)
...
url.py
url(r'^(?P\w+)/foo/$,views.foo.as_view(),name='foo_class'),
views.py
类foo(CreateView):
定义初始(自我,**kwargs):
text=kwargs['Model']#这不起作用
text=kwargs.get('Model')#此
栏(文本)
...
很明显,我遗漏了一些东西,或者我对URL
类视图的理解是错误的。对于此类用例,您应该重写分派
方法
class Foo(CreateView):
def dispatch(self, request, *args, **kwargs):
# do something extra here ...
return super(Foo, self).dispatch(request, *args, **kwargs)
但是,对于您的特定场景,您可以直接访问
self.kwargs
,因为通用视图会自动将它们指定为视图实例上的实例变量。如果您使用.as_view(),则没有请求名称“请求”未定义“您需要显示更多详细信息”。您希望在何处使用这些参数?通常在Django视图中,重写\uuuuu init\uuuu
是错误的。我想使用通用视图CreateView向模型添加对象,并通过URL传递模型名称。例如,要将对象添加到Foo1:xxx/Foo1/foo,请将对象添加到Bar2:xxx/Bar2/foo。我已经准备好了类,它与硬编码输入一起工作,但是我不能让它与kwargs一起运行。但是代码在哪里?您可能需要第三次将其放入get\u form\u class
。您不需要也不可以重写\uuuuu init\uuuu
。将该代码放入get\u form\u class
。