ERR_TOO_MANY_REDIRECTS при входе Django - PullRequest
0 голосов
/ 07 мая 2020

Мое django приложение работало нормально до использования django -hosts, что-то, что я пропустил в системе аутентификации или перенаправлении, до этой ошибки я получал

Реверс для 'входа в систему' не найден . "Логин" не является допустимой функцией просмотра или именем шаблона. затем я добавляю django -hosts resolver helper reverse_lazy в settings.py

LOGOUT_REDIRECT_URL = reverse_lazy('login') 
LOGIN_URL = reverse_lazy('login')
# info
PARENT_HOST = 'localhost:8000'
SCHEME = 'http'
ROOT_URLCONF = 'mysite.urls'
ROOT_HOSTCONF = 'mysite.hosts'
DEFAULT_HOST = 'www'

вот мой hosts.py

from django.conf import settings
from django_hosts import patterns, host

host_patterns = patterns('',
                         host(r'www', settings.ROOT_URLCONF, name='www'),
                         host(r'services', 'application.urls', name='services'),
                         host(r'agent', 'agent.urls', name='agent'),
                         host(r'counter', 'counter.urls', name='counter'),
                         )

вот мои просмотры входа

from django_hosts.resolvers import reverse as host_reverse
class Login(View):
    def get(self, request):
        data = request.GET
        if request.user:
            if request.user.is_staff:
                url = host_reverse('admin_dashboard', host='agent')
                return redirect(url)
            url = host_reverse('counter_pick', host='counter')
            return redirect(url)
        else:
            if data:
                user = authenticate(request, username=data.get('username'), password=data.get('password'))
                if user is not None:
                    login(request, user)
                    if user.is_superuser or user.is_staff:
                        url = host_reverse('admin_dashboard', host='agent')
                        return redirect(url)
                    url = host_reverse('counter_pick', host='counter')
                    return redirect(url)
                else:
                    messages.error(request, 'Username or password incorrect')
                    return redirect('login')

        return render(request, 'agent/login.html')

Root URL-адреса

from agent.views import Login, LogOut
from django.views.decorators.csrf import csrf_exempt
from application.views.views import Home


urlpatterns = [
                  path('login/', Login.as_view(), name='login'),
                  path('logout/', LogOut.as_view(), name='logout'),
              ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) \
              + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

URL-адреса агентов

from django.contrib.auth.decorators import login_required

urlpatterns = [
    path('', login_required(csrf_exempt(views.Dashboard.as_view())), name='admin_dashboard')
]

Но, получив эту ошибку

, вы можете показать мне лестницу

Заранее благодарим

ОБНОВЛЕНИЕ:

некоторые поддомены без аутентификации работают нормально

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...