オブジェクトの名前を django-admin サイトに表示したいのですが、django-polymorphic-tree を使用しており、オブジェクトの名前はこのオブジェクトのコンテンツからのテキストである必要があります。どうすればよいですか?
私はすでにポリモーフィック ツリーのサブクラスで __str __() を試しましたが、django-polymorphic-tree が admin.py で list_display を使用しているため、これは機能しません。
これは私のmodels.pyの一部です
class UserTimelines(PolymorphicMPTTModel):
parent = PolymorphicTreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True, on_delete=models.CASCADE)
to_show = ''
class Meta(PolymorphicMPTTModel.Meta):
verbose_name = "User Timeline"
verbose_name_plural = "User Timelines"
class Node(UserTimelines):
node_title = models.CharField(max_length=20, null=True)
to_show = str(node_title)
class Meta:
verbose_name = "Node"
verbose_name_plural = "Nodes"
class CategoryNode(UserTimelines):
category_username = models.CharField(max_length=25, null=True)
to_show = str(category_username) + ' timeline'
class Meta:
verbose_name = "Category node"
verbose_name_plural = "Category nodes"
そしてadmin.pyの一部
class BaseChildAdmin(PolymorphicMPTTChildModelAdmin):
GENERAL_FIELDSET = ( None, {
'fields' : ('parent',),
})
base_model = UserTimelines
base_fieldsets = (
GENERAL_FIELDSET,
)
class TreeNodeParentAdmin(PolymorphicMPTTParentModelAdmin):
base_model = UserTimelines
child_models = (
(Node),
(CategoryNode),
)
list_display = ('to_show', 'actions_column',)
class Media:
css = {
'all' : ('admin/treenode/admin.css',)
}
admin.site.register((Node, CategoryNode),BaseChildAdmin)
admin.site.register(UserTimelines, TreeNodeParentAdmin)
要約すると、Node または CategoryNode クラスの「to_show」変数である list_display に追加したいだけです。