【问题标题】:Managing list of lists in django admin在 django admin 中管理列表列表
【发布时间】:2023-03-22 14:20:01
【问题描述】:

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

问题是,例如儿科医生有两种工作时间 - 生病的孩子和健康的孩子分开。

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

['', '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)

这不起作用(正如我所料,但尝试并没有坏处)。在添加/编辑员工时,管理面板显示添加表格行的选项,但没有显示任何将任何单元格添加到行的选项。

有没有办法允许在编辑/添加员工时添加行?或者也许是一种完全不同的方式来解决问题?

【问题讨论】:

    标签: django


    【解决方案1】:

    您尝试执行的操作通常称为嵌套内联。不幸的是,恐怕管理员仍然不支持。有关详细信息,请参阅以下资源。

    Nested inlines in the Django admin?

    #9025 assigned New feature: Nested Inline Support in Admin

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-15
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 2014-10-12
      • 2020-09-29
      • 1970-01-01
      • 2011-01-23
      相关资源
      最近更新 更多