python django列表显示在相关的内联线上
可能重复:python django列表显示在相关的内联线上,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,可能重复: 我想在来自另一个相关模型的模型的管理列表视图上显示一些信息 class Identity(models.Model): blocked = models.BooleanField() ... class Person(models.Model): modelARef = OneToOneField("Identity", primary_key=True) descr = models.CharField(max_length=255) name
我想在来自另一个相关模型的模型的管理列表视图上显示一些信息
class Identity(models.Model):
blocked = models.BooleanField()
...
class Person(models.Model):
modelARef = OneToOneField("Identity", primary_key=True)
descr = models.CharField(max_length=255)
name = models.CharField(max_length=255)
用户应该能够在管理页面上添加/编辑“Person”。因为不支持反向内联,所以我必须在管理页面上显示“Identity”,然后内联“Person”。
“身份”仅包含“个人”的附加信息,这些信息应在管理页面上可见
现在,当我有一个“身份”的管理页面时,如何在“身份”的列表显示中显示“个人”模型中的字段
问候
编辑:我可以向“Identity”添加一些函数,这些函数查询相关的“Person”并返回所需的值,但如果我这样做,则无法对该列进行排序。不直接排序,但您可以创建一个打印出所需内容的方法,并将方法名称添加到列表显示中。请参见您可以使用
列表显示来添加自定义列。我还建议更新get\u queryset()
,以确保只在一个查询中获取相关对象,而不是导致每行查询
class IdentityAdmin(admin.ModelAdmin):
list_display = ('blocked', 'person_name')
def person_name(self, object):
return object.person.name
person_name.short_description = _("Person name")
def get_queryset(self, request):
# Prefetch related objects
return super(IdentityAdmin, self).get_queryset(request).select_related('person')
是的,我可以创建一个方法,打印出我想要的内容,但是列不可排序(正如我在帖子中所写的),更新查询集的函数应该是get\u queryset
,而不是queryset