Django管理一页上的多个查询集

时间:2019-03-14 18:30:24

标签: django django-admin

如何在Django管理中的一页上具有多个表(查询集)。

例如:

当我转到公司页面时,我可以看到公司中的部门列表,也可以看到公司中的员工列表。

1 个答案:

答案 0 :(得分:0)

您可以使用InlineModelAdmin objects来实现这一点,尽管如果要进行嵌套内联,则应签出this post。尽管如该帖子所述:

  

...这将是一种复杂的设计。

您在此处未提供任何代码,所以我能做的就是猜测您的模型关系。

models.py

from django.db import models


class Department(models.Model):
    name = models.CharField(max_length=250)
    ...

class Employee(models.Model):
    name = models.CharField(max_length=250)
    ...

class Company(models.Model):
    name = models.CharField(max_length=250)
    departments = models.ForeignKey(Department)
    employees = models.ForeignKey(Employee)
    ...

admin.py

from django.contrib import admin


class EmployeeInline(admin.StackedInline):
    model = Employee

class DepartmentInline(admin.StackedInline):
    model = Department

class CompanyAdmin(admin.ModelAdmin):
    list_display = ('name')
    inlines = [DepartmentInline, EmployeeInline]

admin.site.register(CompanyAdmin)