Django 模型 - 我如何创建抽象方法

django models - how can i create abstract methods

在 django 摘要中 类 似乎可以通过使用:

class Meta:
    abstract = True

但是我看不到如何在不包含的 类 中声明抽象 methods/functions 任何逻辑,例如

class AbstractClass(models.Model):

    def abstractFunction():

    class Meta:
    abstract = True

库 abc 和符号 @abstractmethod 在这里似乎不适用,还是我错了?

据我了解,你是对的。 Meta: abstract=True 在 Django 模型中是为了确保 Django 不会为模型创建数据库表。它早于 Pythons ABC,这可能解释了 naming/functional 的混淆。

Inheriting from both ABC and django.db.models.Model raises metaclass exception

但是,快速搜索给了我这个。不知道会不会破坏什么。 https://gist.github.com/gavinwahl/7778717

我确实喜欢 ABC 在 class 实例化时引发异常的方式,所以它会非常整洁。如果您觉得有用,请告诉我。