@stilet69
программист

Почему выдает ошибку в вызове метода класса в Django?

Есто класс:
class TimeMonth:
    def getstrdate(self, monthyear):
        '''
        функция возвращает строковое представление месяца и года для подстановки значения по умолчанию в моделях
        monthyear - строка месяц или год. В зависимости от этого возвращается либо текущий месяц либо текущий год
        '''
        monthyeararray = {
    1: 'Январь',
    12: 'Декабрь'
            }

        now_date = date.today()     # Текущая дата (без времени)
        cur_year = now_date.year    # Год текущий
        cur_month = now_date.month  # Месяц текущий

        if monthyear == 'месяц':
            defdate = monthyeararray[cur_month]
        else:
            defdate = str(cur_year)

        return defdate


при вызове из другой модели:
month = models.CharField(
        default=TimeMonth.getstrdate('месяц'),
       )

выдает ошибку:
TypeError: getstrdate() missing 1 required positional argument: 'monthyear'
то есть нужны 2 аргумента - self и monthyear.
если я убираю self, то flake8 ругается, что методы обязательно должны иметь первым аргументом self, но ошибки при выполнении не выдает.
Как правильно писать код в данном случае?
P.S. Я новичек в Django
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы