Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python django列表显示在相关的内联线上_Python_Django_Django Models_Django Admin - Fatal编程技术网

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