2016-03-28 76 views
0

我創建了一個基於類視圖「快譯通」對象有在Django沒有屬性「過濾器」

class MyLibrary(generic.DetailView): 

    context_object_name = 'data' 

    def get_template_names(self): 
     request = self.request 
     template_name = 'my_library.html' 
     return [template_name] 

    def get_queryset(self): 
     request = self.request 
     user = request.user 
     context = {} 
     mainData = [] 
     userIssuedBooks = BooksIssued.objects.filter(user=user) 
     print(userIssuedBooks) 
     if user.is_authenticated(): 
      context['issuedBooks'] = userIssuedBooks 
     return context 

我收到以下錯誤,當認爲獲取調用

Internal Server Error: /mylibrary/1/admin 
Traceback (most recent call last): 
    File "C:\Python34\lib\site-packages\django\core\handlers\base.py", line 149, 
in get_response 
response = self.process_exception_by_middleware(e, request) 
File "C:\Python34\lib\site-packages\django\core\handlers\base.py", line 147,  in get_response 
response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "C:\Python34\lib\site-packages\django\contrib\auth\decorators.py", line 2 
3, in _wrapped_view 
return view_func(request, *args, **kwargs) 
File "C:\Python34\lib\site-packages\django\views\generic\base.py", line 68,  in view 
return self.dispatch(request, *args, **kwargs) 
File "C:\Python34\lib\site-packages\django\views\generic\base.py", line 88, in 
dispatch 
return handler(request, *args, **kwargs) 
File "C:\Python34\lib\site-packages\django\views\generic\detail.py", line 117, 
in get 
self.object = self.get_object() 
File "C:\Python34\lib\site-packages\django\views\generic\detail.py", line 38, 
in get_object 
queryset = queryset.filter(pk=pk) 
AttributeError: 'dict' object has no attribute 'filter' 

我沒有線索爲什麼會產生這個錯誤。有人可以幫助找到這裏有什麼問題嗎?

回答

5

在django DetailView中,get_queryset期望用戶返回一個查詢集(顧名思義),但是你返回了一個字典context。您需要在get_context_data中完成目前的工作。

Django doc about adding extra context

相關問題