Как предотвратить переход на страницу входа при входе в систему django - PullRequest
0 голосов
/ 30 марта 2020

Как видно из заголовка, несмотря на то, что я успешно вошел в систему, я не могу помешать приложению вернуться на страницу входа, если я ввел путь к странице в строке URL. ПРИМЕЧАНИЕ. Я не использую встроенные классы пользователя или аутентификации. Вот код ниже:

class user_login_view(View):
    form_class = LoginForm
    template_name = 'main/login.html'

    def get(self, request):
        form = self.form_class(None)
        return render(request, self.template_name, {'form': form})

    def post(self, request):
        form = self.form_class(request.POST)
        username = request.POST['username']
        password = request.POST['password']
        if form.is_valid:
            try:
                member = user.objects.filter(username=username).first()
            except user.DoesNotExist:
                member = None
            if member != None and member and member.password == password:
                request.session['username'] = username
                return redirect('main:index')
            else:
                messages.error(request,'account does not exist')
                return render(request, self.template_name,{'form': form})
        else:
            messages.error(request, 'account does not exist')
            return render(request, self.template_name,{'form': form})

def index(request):
    template_name = 'main/loggedin.html'
    if request.session.has_key('username'):
        username = request.session['username']
        return render(request, template_name, {"username" : username})
    else:
        return HttpResponseRedirect(reverse('main:login'))

def logout(request):
    try:
        del request.session['username']
    except:
        pass
    return HttpResponseRedirect(reverse('main:login'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...