maxclax
@maxclax

Как вызвать метод по связаной таблице?

Имею две модели. User и:

class Partnership(models.Model):
    class Meta:
        verbose_name = _('partnership.model.verbose_name')
        verbose_name_plural = _('partnership.model.verbose_name_plural')

    # владелец записи
    user = models.ForeignKey(User, verbose_name=_('partnership.model.user'))

    def get_amount_total(self):
        if self.transaction_set.filter(is_approved=True).count():
            # получаем суммирование всех транзакций
            data = self.transaction_set.filter(is_approved=True).aggregate(amount_total=models.Sum('amount'))
            return data['amount_total']
        else:
            return 0


Подскажите такой момент: могу ли я через User обратитса к методу get_amount_total? В моем понимании должно быть так User.partnership_set.get_amount_total() но так не работает. Пробовал ставить декоратор @property не работает.
  • Вопрос задан
  • 99 просмотров
Пригласить эксперта
Ответы на вопрос 1
xSkyFoXx
@xSkyFoXx
Вам надо явно унаследовать в User метод get_amount_total:

super(Partnership, self).get_amount_total()

Так как это класс фреймворка, переписывать его некрасиво. Надо сделать через прокси-класс или миксин (выбирайте такой шаблон проектирования, который вам нравится больше).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы