(Django) Аутентификация __инициализация__ проблема с аргументом

#python #django #django-views #calendar #arguments

#python #django #django-просмотры #Календарь #аргументы

Вопрос:

На сегодняшний день у меня есть вопрос об ошибке инициализации, которую я получаю при доступе к моей веб-странице.

Я использую декоратор @login_required для блокировки доступа не прошедших проверку подлинности пользователей к моему календарю расписания. Хотя аутентификация работает должным образом, я не могу просматривать свой веб-сайт из-за ошибки в конце этого вопроса.

VIEWS.PY

 @login_required(login_url='login')
class CalendarView(generic.ListView):
    model = Event
    template_name = 'cal/calendarpage.html'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        d = get_date(self.request.GET.get('month', None))
        cal = Calendar(d.year, d.month)
        html_cal = cal.formatmonth(withyear=True)
        context['calendar'] = mark_safe(html_cal)
        context['prev_month'] = prev_month(d)
        context['next_month'] = next_month(d)
        return context
 

URLS.PY

 urlpatterns = [
    path('calendarpage/', views.CalendarView, name='calendarpage'),
    re_path('event/new/

Если я добавлю .as_view() к своему URL-адресу и удалю аутентификацию, проблем с посещением веб-страницы не возникнет, но тогда аутентификация не требуется.

 TypeError at /calendarpage/

__init__() takes 1 positional argument but 2 were given

Request Method:     GET
Request URL:    http://localhost:8000/calendarpage/
Django Version:     3.1.2
Exception Type:     TypeError
Exception Value:    

__init__() takes 1 positional argument but 2 were given

Exception Location:     C:Users*USER*DesktopPythonVENVlibsite-packagesdjangocontribauthdecorators.py, line 21, in _wrapped_view
Python Executable:  C:Users*USER*DesktopPythonVENVScriptspython.exe
Python Version:     3.8.6
Python Path:    

['C:\Users\*USER*\Desktop\Python\*PROJECT*',
 'C:\Program '
 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\python38.zip',
 'C:\Program '
 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\DLLs',
 'C:\Program '
 'Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib',
 'C:\Users\*USER*\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0',
 'C:\Users\*USER*\Desktop\Python\VENV',
 'C:\Users\*USER*\Desktop\Python\VENV\lib\site-packages']

Server time:    Tue, 08 Dec 2020 15:08:43  0100
 

Не могли бы вы, ребята, пожалуйста, определить проблему, из-за которой я получаю сообщение об ошибке? Как я видел, это путь к глобальному декоратору Django, но нет такого понятия, как "init".
Единственный init, который у меня есть в моем файле utils ниже

УТИЛИТЫ.PY - ВЕСЬ ФАЙЛ ЦЕЛИКОМ

 class Calendar(HTMLCalendar):
    def __init__(self, year=None, month=None):
        self.year = year
        self.month = month
        super(Calendar, self).__init__()

    # formats a day as a td
    # filter events by day
    def formatday(self, day, events):
        events_per_day = events.filter(start_time__day=day)
        d = ''
        for event in events_per_day:
            d  = f'<li> {event.get_html_url} </li>'

        if day != 0:
            return f"<td><span class='date'>{day}</span><ul> {d} </ul></td>"
        return '<td></td>'

    # formats a week as a tr
    def formatweek(self, theweek, events):
        week = ''
        for d, weekday in theweek:
            week  = self.formatday(d, events)
        return f'<tr> {week} </tr>'

    # formats a month as a table
    # filter events by year and month
    def formatmonth(self, withyear=True):
        events = Event.objects.filter(start_time__year=self.year, start_time__month=self.month)

        cal = f'<table border="0" cellpadding="0" cellspacing="0" class="calendar">n'
        cal  = f'{self.formatmonthname(self.year, self.month, withyear=withyear)}n'
        cal  = f'{self.formatweekheader()}n'
        for week in self.monthdays2calendar(self.year, self.month):
            cal  = f'{self.formatweek(week, events)}n'
        return cal
 

Ответ №1:

Закрывая этот вопрос, поскольку я обнаружил, что я использовал циклические команды, XD aythentication пытался аутентифицировать себя, теперь исправлено >. <

, views.event, name='event_new'),
re_path('event/edit/(?P<event_id>d )/Если я добавлю .as_view() к своему URL-адресу и удалю аутентификацию, проблем с посещением веб-страницы не возникнет, но тогда аутентификация не требуется.


Не могли бы вы, ребята, пожалуйста, определить проблему, из-за которой я получаю сообщение об ошибке? Как я видел, это путь к глобальному декоратору Django, но нет такого понятия, как "init".
Единственный init, который у меня есть в моем файле utils ниже

УТИЛИТЫ.PY - ВЕСЬ ФАЙЛ ЦЕЛИКОМ


Ответ №1:

Закрывая этот вопрос, поскольку я обнаружил, что я использовал циклические команды, XD aythentication пытался аутентифицировать себя, теперь исправлено >. <

, views.event, name='event_edit'),
]
Если я добавлю .as_view() к своему URL-адресу и удалю аутентификацию, проблем с посещением веб-страницы не возникнет, но тогда аутентификация не требуется.


Не могли бы вы, ребята, пожалуйста, определить проблему, из-за которой я получаю сообщение об ошибке? Как я видел, это путь к глобальному декоратору Django, но нет такого понятия, как «init».
Единственный init, который у меня есть в моем файле utils ниже

УТИЛИТЫ.PY — ВЕСЬ ФАЙЛ ЦЕЛИКОМ


Ответ №1:

Закрывая этот вопрос, поскольку я обнаружил, что я использовал циклические команды, XD aythentication пытался аутентифицировать себя, теперь исправлено >. <