管理django admin中的列表列表

时间:2012-10-25 12:50:08

标签: django

我正在编写一个django应用程序,用于存储和显示员工的工作时间。

问题是,例如,儿科医生有2种工作时间 - 分别为患病儿童和健康儿童。

所以我想,使用HTML表格显示每位员工的工作时间会很酷。我的想法是有一个“ListField”代表每一行表,ForeignKey代表员工。这样,管理员可以创建如下列表:

['', 'Sick Children', 'Healthy Children'],
['Monday', '8-12', '12-14'],
['Friday', '12-15']

它将作为HTML表格出现在网站上,看起来非常不错。

问题是,我希望网站管理员看起来简单直观。因此,我希望将表行保持为管理面板中的员工内联。 所以,我创建了模型:

class TableRow(models.Model):
    employee = models.ForeignKey(Employee)

class TableCell(models.Model):
    content = models.CharField(max_length=20)
    row = models.ForeignKey(TableRow)

并试过像:

class TableCellInline(admin.TabularInline):
    model = TableCell

class TableRowInline(admin.TabularInline):
    model = TableRow

class EmployeeAdmin(admin.ModelAdmin):
    inlines = [TableRowInline]

admin.site.register(Employee, EmployeeAdmin)
admin.site.register(TableRow, TableRowAdmin)

哪个不起作用(正如我所料,但尝试没有伤害)。管理面板显示添加/编辑员工时添加表行的选项,但不显示任何选项以向行添加任何单元格。

有没有办法在编辑/添加员工时允许添加行?或者可能采用完全不同的方式解决问题?

1 个答案:

答案 0 :(得分:0)

您尝试做的通常称为嵌套内联。不幸的是,我担心这仍然不受管理员的支持。有关详细信息,请参阅以下资源。

Nested inlines in the Django admin?

#9025 assigned New feature: Nested Inline Support in Admin