问题描述
||
class PositionModel(models.Model):
xpos = models.IntegerField()
ypos = models.IntegerField()
def relative(self,x,y):
self.__class__.objects.filter(xpos = self.xpos + x,ypos = self.ypos + y)
class Meta:
abstract = True
此示例使您可以在几个不同的模型中继承PositionModel,然后使用relative(x,y)函数基于子模型进行查询。
Django是否还有其他一些首选的方式可以在使用子级管理器的抽象模型中编写函数?
解决方法
代理模型的目的是向模型添加额外的方法或功能,而不会弄乱字段/数据库...但是您想在多个模型上继承此方法,并且代理模型连接到一个非抽象类仅,xpos + ypos也被继承了,我想抽象类可能是完成这项工作的最佳选择。