Python Django类视图:\ uu init__

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

我想从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
        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