Использовать класс прокси-модели Django при получении полей ManyToMany через поле related_name

Есть ли способ заставить связанное поле ManyToMany использовать класс Proxy вместо модели, которая связана с ним? У меня есть следующий код:

# Code in models.py
class Member(models.Model):
    username = models.CharField(max_length=100)

class BaseGroup(models.Model):
    member = models.ManyToManyField('Member', related_name='groups')

class Group(BaseGroup):
    class Meta:
        proxy = True

    def some_method(self):
        return 'something'


# Code in view:
member = Member.objects.first()
group = member.groups.first()
print group.some_method()

Приведенный выше код выдает ошибку: "Групповой объект не имеет атрибута" some_method "", поскольку строка "member.groups.first()" возвращает "BaseGroup" вместо прокси "Group", поэтому я не могу использовать методы, которые Я реализовал на прокси-классе.

Есть ли способ сообщить ManyToManyField (или запрос), чтобы вернуть прокси-класс вместо базовой модели?

0 ответов

Другие вопросы по тегам