Django:在处理外键和该外键模型中的许多字段时,我被管理员注册卡住了
Django: I'm stuck with the admin register when dealing with foreign keys and many to many fields inside that foreign key model
我有一个模型 Workout、WorkoutDay 和 Exercise。
一次锻炼可以有多个锻炼日。锻炼日由多项练习组成。每个锻炼可以添加到多个锻炼日。在 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)
我有一个模型 Workout、WorkoutDay 和 Exercise。
一次锻炼可以有多个锻炼日。锻炼日由多项练习组成。每个锻炼可以添加到多个锻炼日。在 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)