django моделей - как я могу создавать абстрактные методы - PullRequest
1 голос
/ 30 марта 2020

В django абстрактные классы кажутся возможными при использовании:

class Meta:
    abstract = True

Однако я не вижу, как объявлять абстрактные методы / функции в этих классах, которые не содержат никаких логи c вроде например,

class AbstractClass(models.Model):

    def abstractFunction():

    class Meta:
    abstract = True

Библиотека ab c, соответственно, обозначение @abstractmethod здесь не применимо, или я ошибаюсь?

1 Ответ

1 голос
/ 30 марта 2020

Из того, что я понимаю, вы правы. Meta: abstract = True в Django моделях, чтобы убедиться, что Django не создает таблицы базы данных для модели. Он предшествует Pythons AB C, что может объяснить путаницу имен / функций.

Наследование от AB C и django .db.models.Model вызывает исключение метакласса

Однако быстрый поиск дал мне это. Не знаю, сломается ли это что-нибудь. https://gist.github.com/gavinwahl/7778717

Мне нравится, как AB C вызывает исключение при создании экземпляра класса, так что это будет довольно аккуратно. Дайте мне знать, если вы найдете это полезным.

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