29
私のモデルを値の大きなディクテーション(.values()のようなものですが、関係をトラバースする)に簡単に変換できるようにするミックスインを書いています。これらの定義を行うにはクリーンな場所はモデル自身、ラ内にあるように見えます:DjangoモデルのMetaクラスに属性を追加する
TypeError: 'class Meta' got invalid attribute(s): schema
(全体のスタックトレース:
class Person(models.Model, DeepValues):
name = models.CharField(blank=True, max_length=100)
tribe = models.ForeignKey('Tribes')
class Meta:
schema = {
'name' : str,
'tribe' : {
'name' : str
}
}
Person.objects.all().deep_values() => {
'name' : 'Andrey Fedorov',
'tribe' : {
'name' : 'Mohicans'
}
}
しかし、Djangoはと私はclass Meta
でこれを含めて文句here)
ここで、私はmixinでこれを巧妙にオーバーライドすることができますが、この情報を格納するよりエレガントな方法がありますか?
これは機能しませんが、これはありませんでした:options.DEFAULT_NAMES = options.DEFAULT_NAMES +( 'default_values'、) –
ああ...おそらく私のソリューションはDEFAULT_NAMESをリストに変換していますが、それをタプルとして保持します。 –
おそらく! :) –