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 实例化时引发异常的方式,所以它会非常整洁。如果您觉得有用,请告诉我。
在 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 实例化时引发异常的方式,所以它会非常整洁。如果您觉得有用,请告诉我。