Django类别检视:__init__ [英] Django class view: __init__
本文介绍了Django类别检视:__init__的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从URL获取< Model>
值,并将其用作类中的 __ init __
参数.
I want to get <Model>
value from a URL, and use it as an __init__
parameter in my class.
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 <>
类视图的理解是错误的.
Clearly, I'm missing something, or my understanding of URL <>
class view is wrong.
推荐答案
对于此类用例,您应覆盖 dispatch
方法.
You should override dispatch
method for such use cases.
class Foo(CreateView):
def dispatch(self, request, *args, **kwargs):
# do something extra here ...
return super(Foo, self).dispatch(request, *args, **kwargs)
但是,对于您的特定情况,您可以直接访问 self.kwargs
,因为通用视图会自动将它们分配为视图实例上的实例变量.
For your specific scenario, however, you can directly access self.kwargs
as generic views automatically assign them as an instance variable on the view instance.
这篇关于Django类别检视:__init__的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文