Django: использование менеджера дочерней модели из абстрактной родительской модели - PullRequest
0 голосов
/ 12 июня 2011
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 в нескольких разных моделях, а затем использовать относительную (x, y) функцию для выполнения запроса на основе модели дочернего элемента.

Есть ли у Django какой-то другой, предпочтительный способ написания функций в абстрактных моделях, использующих менеджер ребенка?

1 Ответ

1 голос
/ 12 июня 2011

Прокси-модели предназначены для добавления дополнительных моделей или функциональности к моделям, не вмешиваясь в поля / db ... но так как вы хотите наследовать этот метод более чем в одной модели, а прокси-модели подключаются к- только абстрактный класс, и xpos + ypos тоже наследуются, я думаю, что абстрактный класс мог бы быть лучшим выбором для этой работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...