在标准列表管理员中显示多个型号的字段 [英] Display fields from multiple models in the standard list admin

查看:89
本文介绍了在标准列表管理员中显示多个型号的字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在标准列表管理员中显示多个模型的字段?

How do I display fields from multiple models in the standard list admin?

我设计了我的应用程序如下:(为了简单起见,我省略了一些字段)

I've designed my application as follows: (For simplicity, I omitted some fields)

模型。 py

class Register(models.Model):
    tag = models.CharField(max_length=15, unique=True)
    active = models.BooleanField(default=True)
    created_at = models.DateTimeField(auto_now_add=True, editable=False)

    def __unicode__(self):
    return self.tag


class Person(models.Model):
    register = models.OneToOneField(Register, primary_key=True)
    ownership_name = models.CharField(max_length=255)

    def __unicode__(self):
        return self.ownership_name

admin.py

class RegisterAdmin(admin.ModelAdmin):
    list_display = ['tag', 'active', 'created_at', 'ownership_name (??)']n


admin.site.register(Register, RegisterAdmin)

admi n愿望将是这样的:

The admin vision would be something like this:

+ -------------------------- ----------------------------- +

|  标记  |活动| created_at | ownership_name | _
| --------------------------------------- ----------------- | _
| XXX |  是   | 06/09/2104 |            John           br />
| ------------------------------------------ -------------- | _
| YYY |  否   | 06/10/2104 |           标记           br />
+ ------------------------------------------ ------------- +

+-------------------------------------------------------+
|  tag  | active | created_at | ownership_name |
|--------------------------------------------------------|
| XXX |  Yes   | 06/09/2104 |           John          |
|--------------------------------------------------------|
| YYY |  No    | 06/10/2104 |           Mark          |
+-------------------------------------------------------+

推荐答案

您可以在管理类中定义其他字段:

You can define additional fields in the admin class like so:

class RegisterAdmin(admin.ModelAdmin):
    list_display = ['tag', 'active', 'created_at', 'ownership_name']

    def ownership_name(self, obj):
        return obj.person.ownership_name


admin.site.register(Register, RegisterAdmin)

以下是文档: https://docs.djangoproject.com/en/1.6/ref/contrib/ admin /#django.contrib.admin.ModelAdmin.list_display

这篇关于在标准列表管理员中显示多个型号的字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆