Django:在处理外键和该外键模型中的许多字段时,我被管理员注册卡住了

Django: I'm stuck with the admin register when dealing with foreign keys and many to many fields inside that foreign key model

我有一个模型 WorkoutWorkoutDayExercise

一次锻炼可以有多个锻炼日。锻炼日由多项练习组成。每个锻炼可以添加到多个锻炼日。在 workoutday 和 exercise 的关系之间,需要包含额外的字段(如 amount_required)。

我想在管理员视图中拥有的是:管理员用户可以添加新的锻炼(带有一些字段),可以添加多个锻炼日,将多个锻炼添加到 1 个锻炼日。

我已经尝试将 Workoutday 设为内联 adminModel。这行得通,但我不能以这种方式包含练习。

更形象化:

锻炼 1:

   Workoutday1:
               Exercise1 - amount_required: 10
               Exercise2 - amount_required: 50
   Workoutday2:
               Exercise1 - amount_required: 12
   Workoutday3:
               Exercise2 - amount_required: 20
               Exercise3 - amount_required: 20

有人可以帮我吗?

Django 不支持嵌套内联管理(在 InlineModelAdmin 类 上定义内联),ticket here. Take a look of this app though: django-nested-admin

您可以在不使用第 3 方应用程序的情况下尝试这样的操作:

@admin.register(WorkoutDay)
class WorkoutDayAdmin(admin):
    fieldsets = [
        ("Exercices", {"fields": ["exercises"], "classes": ["collapse"]}),
    ]

通常它应该能让您select并创建多个exercices(假设该字段被称为exercices

您在找这样的东西吗?

class ExercisesInline(admin.TabularInline):
    model = Exercise

class WorkoutAdmin(admin.ModelAdmin):
    list_display = ['id',. .... "your fields" ]
    list_filter = ["list of filters"]
    inlines = [ExercisesInline]

 admin.site.register(Workout, WorkoutAdmin)