The error says :
get() takes exactly 2 arguments (3 given)
I am sub classing DetailView as :
class MovieDetail(DetailView):
template_name = 'examples/generic_movie_detail.html'
template_object_name = 'movie'
def get_queryset(self):
movie = get_object_or_404(Movies, actors__name__contains = self.args[0])
return movie
and using url as :
(r'^movie/detail/(\w+)', MovieDetail.as_view())
Now i want to retrieve movies by any particular actor say (‘Tom’) then i will pass Tom through url as “/movie/detail/tom ” . I will work it out in my template then .
Traceback :
File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python26\lib\site-packages\django\views\generic\base.py" in view
47. return self.dispatch(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\views\generic\base.py" in dispatch
68. return handler(request, *args, **kwargs)
Exception Type: TypeError at /examples/movie/detail/aamir
Exception Value: get() takes exactly 2 arguments (3 given)
You are passing
BaseDetailView.getarguments via your URL capturing group (the(\w+)) when it doesn’t accept arguments.Either pass it keyword arguments or override the
getmethod to accept*argsor your specific argument.