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是否有其他一些首选的方法在使用孩子经理的抽象模型中编写函数?
答案 0 :(得分:1)
代理模型旨在为模型添加额外的方法或功能,而不会弄乱字段/ db ...但是因为您希望在多个模型上继承此方法,并且代理模型连接到一个非-abstract类,xpos + ypos也被继承,我猜一个抽象类可能是做这项工作的最佳选择。