Мое 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')
]
Но, получив эту ошибку
, вы можете показать мне лестницу
Заранее благодарим
ОБНОВЛЕНИЕ:
некоторые поддомены без аутентификации работают нормально