0

したがって、子モデルがプロキシであることを除いて、単純なモデル継承があります。問題は、私の見解では、私がそうする場合:

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

そして、私は電話します

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

set_siblingsもう1 つのパラメーター (the ) が必要なため、エラーが発生しますrelation_typeConceptモデル内のメソッドが呼び出されています。印刷する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')
4

0 に答える 0