2017-09-02 272 views
1

Django 1.10在我嘗試登錄我的儀表板時發生錯誤。Django AttributeError:'NoneType'對象沒有屬性'has_header'

回溯(最近通話最後一個):

File "/Users/guest/epifiction/lib/python2.7/site-packages/django/core/handlers/exception.py", line 39, in inner 
response = get_response(request) 

File "/Users/guest/epifiction/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response 
response = self.process_exception_by_middleware(e, request) 

File "/Users/guest/epifiction/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response 
response = wrapped_callback(request, *callback_args, **callback_kwargs) 

File "/Users/guest/epifiction/lib/python2.7/site-packages/django/views/decorators/cache.py", line 58, in _wrapped_view_func 
add_never_cache_headers(response) 

File "/Users/guest/epifiction/lib/python2.7/site-packages/django/utils/cache.py", line 230, in add_never_cache_headers 
patch_response_headers(response, cache_timeout=-1) 

    File "/Users/guest/epifiction/lib/python2.7/site-packages/django/utils/cache.py", line 219, in patch_response_headers 
if not response.has_header('Last-Modified'): 

AttributeError的: 'NoneType' 對象有沒有屬性 'has_header'

這裏是查看代碼

class AuthorLoginView(bracesviews.AnonymousRequiredMixin,authviews.LoginView): 
    form_class = forms.AuthorLoginForm 
    template_name = 'landing_page/demo.html' 

def form_valid(self, form): 
    username = form.cleaned_data.get('username') 
    userId = User.objects.get(username=username).id 
    try: 
     profile_obj = UserProfile.objects.get(user_id=userId) 
    except UserProfile.DoesNotExist: 
     return super(AuthorLoginView, self).get(self) 
    else: 
     if profile_obj.role_id == 3: 
      redirect = super(AuthorLoginView, self).form_valid(form) 
      remember_me = form.cleaned_data.get('remember_me') 
      if remember_me is True: 
       ONE_MONTH = 30 * 24 * 60 * 60 
       expiry = getattr(settings, "KEEP_LOGGED_DURATION", ONE_MONTH) 
       self.request.session.set_expiry(expiry) 
      return redirect 
+1

請顯示您的查看代碼 –

+0

我已更新。謝謝 – user2908424

回答

2

您返回None如果profile_obj.role_id != 3

if profile_obj.role_id == 3: 
     redirect = super(AuthorLoginView, self).form_valid(form) 
     remember_me = form.cleaned_data.get('remember_me') 
     if remember_me is True: 
      ONE_MONTH = 30 * 24 * 60 * 60 
      expiry = getattr(settings, "KEEP_LOGGED_DURATION", ONE_MONTH) 
      self.request.session.set_expiry(expiry) 
     return redirect 
    # HERE need add logic simple return super 
    return super(AuthorLoginView, self).form_valid(form) 
+0

很高興幫助你) –

相關問題