Проблема с протоколированием с помощью auth_views.loginView в Django
Когда я пытаюсь войти в систему через LoginView, процесс кажется успешным. Я перенаправляюсь на LOGIN_REDIRECT_URL.
urlpatterns = [
...
path('login', auth_views.LoginView.as_view(), name='login'),
]
Но когда я пытаюсь получить доступ к представлению, которое требует входа, я перенаправляюсь на страницу входа. Когда я вывожу request.user.id в представлении, это также None.
class MyView(viewsets.ViewSet):
@method_decorator(login_required(login_url='/login'))
def list(self, request, server_id):
....
Что я упускаю? Спасибо.
Вот моя форма входа.
<form method="POST" action="{% url 'login' %}">
{% csrf_token %}
<div class="form-group">
<label>Username</label>
<input type="text" class="form-control" id="username" name="username" placeholder="Username">
</div>
<div class="form-group">
<label>Password</label>
<input type="password" name="password" id="password" class="form-control" placeholder="Password">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
Попробуйте что-нибудь вроде этого:
from rest_framework.permissions import IsAuthenticated
class MyView(viewsets.ViewSet):
permission_classes = [IsAuthenticated]
def list(self, request, server_id):
....
ViewSet - это класс djangoREST, и иногда есть некоторые различия в использовании между стандартными django и djangoREST представлениями/другими компонентами.