- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 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。
最佳答案
几天后,我为这个问题找到了解决方案。无论如何,这很简单,你必须这样做:
模型.py:
class UserTimelines(PolymorphicMPTTModel):
parent = PolymorphicTreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True, on_delete=models.CASCADE)
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)
def __str__(self):
return str(self.node_title)
class Meta:
verbose_name = "Node"
verbose_name_plural = "Nodes"
class CategoryNode(UserTimelines):
category_username = models.CharField(max_length=25, null=True)
def __str__(self):
return str(self.category_username) + ' timetable'
class Meta:
verbose_name = "Category node"
verbose_name_plural = "Category nodes"
管理.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 = ('_show', 'actions_column',)
def _show(self, obj):
return str(UserTimelines.objects.get(pk=obj.pk).__str__())
class Media:
css = {
'all' : ('admin/treenode/admin.css',)
}
admin.site.register((Node, CategoryNode),BaseChildAdmin)
admin.site.register(UserTimelines, TreeNodeParentAdmin)
我认为这个解决方案可以为将来的某人提供帮助,所以你就在这里。
关于python - Django 多态树 list_display 内容字段中的对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170381/
我想通过不同的权限自定义 list_display。例如,super 可以看到“价格”,其他则不能。管理员.py class bookAdmin(admin.ModelAdmin): def
我有 2 个应用程序:Visitors和 Meetings ,通过 ManytoMany 链接 field : 访客/models.py: from django.db import models f
这是 models.py 的片段 class Applicant(models.Model): name = models.CharField(...) email = models.
我在 Django >= 1.6 文档中阅读: "The field names in list_display will also appear as CSS classes in the HTML
models.py 中有一个名为Employees 的类 class Employees(models.Model): employee_id = models.CharField(verbo
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Can “list_display” in a Django ModelAdmin display attr
我想在 Django Admin 的 list_display 中添加“annotation count”字段。 模型.py class Log(models.Model): ...
Closed. This question does not meet Stack Overflow guidelines 。它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 Stack Ov
我刚刚开始使用 Django 管理 View ,开始时,我试图做一些非常简单的事情:使用 list_display 显示对象列表中的几个字段,如下所述:https://docs.djangoproje
我尝试在 Django 管理端的列表显示中显示带有换行符的文本。 class MyModelAdmin(admin.ModelAdmin): list_display = ('example'
需要在 admin list_display 中截断文本 在管理模型中有以下内容但仍显示全文。 from django.template.defaultfilters import truncatew
我有两个模型和一个管理模型: class Person(models.Model): firstname = models.CharField(maxlength=50) surnam
我正在尝试在 list_display 上显示 TextField 的前 10 个字符。 可以在管理界面中吗? 最佳答案 您可以定义一个返回字段前 10 个字符的可调用函数,并将其添加到 list_d
如果状态 = 已关闭,则尝试更改背景颜色。 当我尝试下面的代码时,结果以 html 而不是实际颜色显示。 ##Mode.py from django.template.defaultfilters i
我有两个模型: class Person(models.Model): person_name = models.CharField(max_length=255) def __uni
我有以下代码: #models.py class Repair(models.Model): products = models.ManyToManyField(Product) de
我正在尝试使用 Django 的官方教程。特别是 modeladmin list_display: http://docs.djangoproject.com/en/1.2/intro/tutoria
在我的主网站(管理页面之外)中获得 list_display 功能的最简单方法是什么。 我有一组元素我想选择并执行一个 Action 。有什么想法吗? 最佳答案 名为 django-filter 的应
class CDR(models.Model): order = models.ForeignKey(Order) call = models.ForeignKey(Call)
有没有像 get_list_display() 这样的管理模型方法,或者我可以有一些条件来设置不同的 list_display 值? class FooAdmin (model.ModelAdmin)
我是一名优秀的程序员,十分优秀!