в Django, могу ли я использовать класс только для группировки функций? - PullRequest
0 голосов
/ 07 мая 2020

Я создаю приложение, используя Django. В приложении есть функции регистрации и входа в систему.

На данный момент у меня есть три функции, связанные с аутентификацией пользователя: вход, регистрация и email_check (который вызывается, когда пользователь вводит адрес электронной почты, чтобы узнать, доступен ли он) . Я пытался сгруппировать эти функции в один класс для лучшей организации и легкого доступа.

Итак, я написал класс и функцию следующим образом:

class user_auth:
    def check_email(email):
        with connection.cursor() as conn:
            conn.execute('select count(*) from user_info where email = %s', [email])
            row = conn.fetchall()
        response = bool(row[0][0])
        return(response)

Однако, когда я это сделаю, я получить сообщение об ошибке pylint: Method should have "self" as the first argument.

Если я сохраню это и назову его как user_auth.check_email('abc@xyz.com'), он будет работать нормально. Но если я добавлю себя в качестве первого аргумента, он перестанет работать.

Я неправильно использую классы? Если да, то как лучше создать группу таких функций, которые можно было бы легко импортировать с помощью одного оператора в другие файлы?

1 Ответ

3 голосов
/ 07 мая 2020

Как сказано в комментариях, вы можете использовать для этого модуль.

В противном случае, если вы хотите сгруппировать их внутри класса, вам просто нужно использовать staticmethod или classmethod декоратор.

Пример:

class user_auth:
    @classmethod
    def check_email(cls, email):
        ...

    @staticmethod
    def static_check_email(email):
        ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...