Djangoでmongoengineを使用しています。他のいくつかのクラス (Person、Place、Event など) が継承するクラス Noun があります。Noun クラスは次のようになります。
class Noun(Document):
label = StringField(max_length=120, required=True)
contributor = StringField(max_length=120, required=True)
description = StringField(required=False)
@property
def noun_cls():
return self._cls
meta = {'allow_inheritance': True}
テンプレートで noun_cls プロパティを参照しようとしても、何も得られません。例えば:
{% for noun in Nouns %}
<li>
<a href="{{BASE_URL}}noun/update/{{ noun.id }}/{{ noun.noun_cls }}/">Edit {{ noun.noun_cls }}</a>
<p>{{ noun.description }}</p>
</li>
{% endfor %}
...これは "...noun/update/[long mongo id]//" のような URL になります。noun_cls プロパティが完全に無視されているかのようです。これは、既存の名詞 (または任意のタイプ) と、このコード変更後に作成された新しい名詞の両方に当てはまります。何か案は?