Han*_*pan 1 django django-models
我有一系列与各种 Web API 交互的模型。我需要确保每个模型都有特定的方法。使用 PHP,我会创建一个类接口,以确保我的模型具有完成其工作所需的方法,但似乎 Python 接口不适用于 Django 模型。
我假设这样做的方法是创建一个扩展 model.Model 的基类,它定义我需要的方法,如有必要,我可以在每个 API 模型中覆盖它们。在同步数据库时,我如何在没有 Django 选择“基”类的情况下做到这一点?这甚至是正确的方法吗?
您可以使用类的abstract = True方面Meta。
class BaseModelInterface(models.Model):
class Meta:
abstract = True
class ActualModel(BaseModelInterface):
[...normal model code...]
Run Code Online (Sandbox Code Playgroud)
文档:http : //docs.djangoproject.com/en/1.3/ref/models/options/
话虽如此,通常鸭子类型被认为是“Python 方式”,并且您的调用代码应该测试方法是否存在 ( if hasattr(instance, 'method_name'))。也就是说,您比我们更了解您的特定实现,因此您可以使用 abstract = True 来获得您想要的行为。:)
| 归档时间: |
|
| 查看次数: |
4724 次 |
| 最近记录: |