Django管理站点 - 将ForeignKey项列为更改页面上的更改列表

时间:2013-02-23 21:35:19

标签: django django-models django-admin changelist

在我的项目的(玩具版本)中,有拥有任意数量对象的所有者。我的models.py文件看起来像

class Owner(models.Model)
    name = models.CharField(max_length=50)
    date_of_birth = models.DateField()

class Object(models.Model)
    name = models.CharField(max_length=50)
    price = models.models.DecimalField(max_digits=9, decimal_places=2)
    owner = models.ForeignKey(Owner)

我的问题与管理网站上所有者的更改页面有关,例如

http://mysite.com/admin/myapp/owner/1/.

现在我知道,如果我将Object注册为TabularInlineStackedInline,那么我会获得此所有者拥有的对象的可编辑列表。但是,在我的项目的真实版本中,Object有25个字段,而不是2个字段,所以这些选项都不是真正理想的。

我真正想要的是基本上拥有所有者拥有的所有对象的更改列表显示在所有者的更改页面上。 (这样我得到了所有Owner's Objects的精简列表,如果我需要编辑其中的详细信息,我可以点击它的链接并在自己的页面中编辑它。)基本上我想要的内容

http://mysite.com/admin/myapp/object/?owner__id__exact=1

出现在

http://mysite.com/admin/myapp/owner/1/.

有办法做到这一点吗?

PS:我正在使用Django 1.4和Python 2.7。

1 个答案:

答案 0 :(得分:0)

您可以使用these attributes定义每个InlineModelAdmin中要使用的表单类和/或字段,并限制每个对象的输入字段数量。