Метод вызова 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')