gpt4 book ai didi

Django - 模型类接口(interface)?

转载 作者:行者123 更新时间:2023-12-05 00:42:15 28 4
gpt4 key购买 nike

我有一系列与各种 Web API 交互的模型。我需要确保每个模型都有特定的方法。使用 PHP,我将创建一个类接口(interface)以确保我的模型具有完成工作所需的方法,但 Python 接口(interface)似乎不适用于 Django 模型。

我假设这样做的方法是创建一个扩展 model.Model 的基类,它定义了我需要的方法,并且我可以在必要时在每个 API 模型中覆盖它们。在同步数据库时,如果 Django 不选择“基”类,我怎么能做到这一点?这甚至是正确的方法吗?

最佳答案

您可以使用 Meta 类的 abstract = True 方面。

class BaseModelInterface(models.Model):
class Meta:
abstract = True

class ActualModel(BaseModelInterface):
[...normal model code...]

文档:http://docs.djangoproject.com/en/1.3/ref/models/options/

话虽如此,通常鸭子类型被认为是“Python 方式”,并且您的调用代码应该测试方法是否存在(if hasattr(instance, 'method_name'))。也就是说,您比我们更了解您的特定实现,因此您可以使用 abstract = True 来获得您想要的行为。 :)

关于Django - 模型类接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6033817/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com