2017-03-08 7 views
0

Ich habe eine Middleware, die Benutzerprofil überprüfen. Wenn der auth-Benutzer kein Profil hat, leiten Sie ihn an das Benutzerprofil weiter. Mein Browser zeigt den Fehler The page isn’t redirecting properly an.django-Die Seite leitet nicht richtig um

class Check(MiddlewareMixin): 
    def process_request(self, request): 
     if request.user.is_authenticated(): 
      user = request.user 
      try: 
       profile = Profile.objects.get(user_id = user) 
       if profile: 
        pass 
      except ObjectDoesNotExist: 
       return HttpResponseRedirect('/accounts/profile/') 

Ich bin Gebrauch django-allauth.

+0

Ich glaube, dass im Inneren 'HttpResponseRedirect' sollten Sie mit den Tasten [' reverse'] (https://docs.djangoproject.com/en/dev/ref/urlresolvers/#django.urls.reverse) -Funktion. Das sollte es tun. –

Antwort

3

Es klingt, als ob Sie eine unendliche Umleitungsschleife haben könnten. Überprüfen Sie den Anforderungspfad, und führen Sie keine Umleitung durch, wenn der Benutzer versucht, auf /accounts/profile/ zuzugreifen.

class Check(MiddlewareMixin): 
    def process_request(self, request): 
     if request.user.is_authenticated() and request.path != '/accounts/profile/': 
      ... 
+0

Tank mein Bruder – Ehsan

Verwandte Themen