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)
...
Clearly, I'm missing something, or my understanding of URL <>
class view is wrong.
You should override dispatch
method for such use cases.
class Foo(CreateView):
def dispatch(self, request, *args, **kwargs):
# do something extra here ...
return super().dispatch(request, *args, **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.