0

私は、従業員の労働時間を保存して表示する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)

これは機能しません(私が期待したように、しかし試してみても害はありませんでした)。管理パネルには、従業員を追加/編集するときにテーブル行を追加するオプションが表示されますが、行にセルを追加するオプションは表示されません。

従業員の編集/追加中に行を追加できるようにする方法はありますか?それとも、問題を解決するためのまったく異なる方法ですか?

4

1 に答える 1

0

あなたがやろうとしていることは、一般にネストされたインラインと呼ばれます。残念ながら、これはまだ管理者によってサポートされていません。詳細については、次のリソースを参照してください。

Django admin でネストされたインライン?

#9025 が割り当てられました 新機能: 管理者のネストされたインライン サポート

于 2012-10-25T15:52:32.807 に答える