Как импортировать request.user в TemplateVew в django - PullRequest
0 голосов
/ 02 апреля 2020

Мне нужно знать, как я могу проверить, является ли пользователь аутентифицированным пользователем, методы TemplateView для рендеринга страниц.

Я добавил это в мои контекстные процессоры:

    TEMPLATE_CONTEXT_PROCESSORS = [
    'django.contrib.auth.context_processors.auth',
]

мои представления .py в настоящее время выглядит следующим образом:

    from django.shortcuts import render
from CreateVuln.forms import *
from django.views.generic import TemplateView
from django.template import RequestContext

from pages.decorators import *

vulnform = vulnform


class Dashboard(TemplateView):
    template_name = 'vuln_pages/Create_Vuln.html'

    def get(self, request):
        Outform = {
                     'vulnform': vulnform,

                     }
        return render(request, self.template_name, Outform)

    def post(self, request):
            forminput = vulnform(request.POST or None)


            if forminput.is_valid():
                forminput.save()
                forminput = vulnform()



                inoutform = {
                             'vulnform': forminput,

                             }
                return render(request, self.template_name, inoutform, )

            else:

                inoutform = {
                             'vulnform': vulnform,

                             }

                return render(request, self.template_name,inoutform )

# Create your views here.

class ViewVulns(TemplateView):

    template_name = 'vuln_pages/Create_Vuln.html'

    def get(self, request):

        return render(request, self.template_name)

Я хочу сделать так, чтобы страницу нельзя было просмотреть ни с помощью запроса GET, ни для обновления с помощью запроса POST. Я пытался использовать RequestContext. но документация кажется запутанной, и я не могу понять, как ее использовать.

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Использование LoginRequiredMixin mixin

Если представление использует этот миксин, все запросы неаутентифицированных пользователей будут перенаправлены на вход на странице или отображается ошибка HTTP 403 Forbidden, в зависимости от параметра raise_exception.

<b>from django.contrib.auth.mixins import LoginRequiredMixin</b>


class Dashboard(<b>LoginRequiredMixin,</b> TemplateView):
    # your code
0 голосов
/ 02 апреля 2020

Вы можете попробовать это: if request.user.is_authenticated:

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