2014-11-27 2 views
0

사용자가 유효하지 않은 회원 인 경우 리디렉션하기 위해 미들웨어를 작성하려고합니다. 여기 사용자가 유효하지 않은 경우 미들웨어가 경로로 리디렉션됩니다.

내 코드입니다 :

여기
from django.conf import settings 
from django.http import HttpResponsePermanentRedirect 


class UserCheckMiddleware: 

    def process_request(self, request): 

     #Paths 
     inactive_path = settings.INACTIVE_USER_URL 

     #First check if the user is logged in 
     if request.user.is_authenticated(): 

      #Check if the user has a valid membership 
      if not request.user.profile.is_valid_member: 

       #Check if the path is the inactive_path to prevent endless redirectloop 
       if not request.path in (inactive_path): 
        #Redirect to inactive_path 
        return HttpResponsePermanentRedirect(inactive_path) 

내 모델 코드입니다 : 내가 과거의 날짜에 memberend 날짜를 설정하면 임 리디렉션되지 왜

class Profile(models.Model): 
    user = models.OneToOneField(User) 
    memberend = models.DateTimeField(blank=True, null=True)  



    def is_valid_member(self): 
     if self.memberend: 
      #Return True if memberend is in the future and False if the date is in the past 
      return self.memberend >= timezone.now() 
     else: 
      #Memberend is not set, the user is valid 
      return True 

누구나 알고는?

답변

1

메서드를 호출하지 않았습니다.

if not request.user.profile.is_valid_member(): 

메소드 객체 자체는 항상 참입니다.

관련 문제