在标准列表管理员中显示多个型号的字段 [英] Display fields from multiple models in the standard list admin
问题描述
如何在标准列表管理员中显示多个模型的字段?
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)
这篇关于在标准列表管理员中显示多个型号的字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!