Метод вызова Django на модели с прокси =True

Поэтому у меня есть простое наследование Model, за исключением того, что дочерняя модель является прокси. Проблема в том, что, на мой взгляд, если я делаю:

concept = get_object_or_404(Term, pk=...)

а потом я звоню

concept.set_siblings('en') # 'en' is the langcode

Я получаю ошибку, потому что set_siblings ожидает еще один параметр (relation_type). Метод внутри Concept модель называется. Если я распечатаю concept.__class__.__name__ я вижу Concept, Так как я могу правильно назвать set_siblings внутри Term модель?

Вот документы, но которые не помогают мне прояснить проблему.

models.py

class Concept(Model):
    namespace = ForeignKey(Namespace)
    code = CharField(max_length=10)
    date_entered = DateTimeField(blank=True, null=True)
    date_changed = DateTimeField(blank=True, null=True)
    # .....

    def set_siblings(self, langcode, relation_type):
        setattr(self, relation_type + '_concepts',
                self.get_siblings(langcode, relation_type))
    #.....

class Term(Concept):
    def set_siblings(self, langcode):
        for relation_type in ['broader', 'narrower', 'related']:
            super(Term, self).set_siblings(langcode, relation_type)

    class Meta:
        proxy = True
        verbose_name = "concept"

    objects = ConceptManager('Concepts')

0 ответов

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