Django Динамические вложенные наборы форм
У меня есть 3 модели Clinic, Doctor, DoctorHours. Я хочу создать динамическую форму, которая позволит мне создавать эти экземпляры в одной форме что-то вроде этого:
ClinicForm
--add_doctor_button
--DoctorForm
----add_doctor_hours_button
----DoctorHoursForm
----DoctorHoursForm
--DoctorForm
----add_doctor_hours_button
----DoctorHoursForm
----DoctorHoursForm
----DoctorHoursForm
Помогите пожалуйста
Это простой пример того, что можно сделать. Он не совсем вложенный. Но он обеспечивает большую часть функциональности, которую вы ищете.
# admin.py
from django.contrib import admin
from .models import Clinic, Doctor, DoctorHours
class DoctorHoursInline(admin.TabularInline):
model = DoctorHours
@admin.register(Doctor)
class DoctorAdmin(admin.ModelAdmin):
# stuff
inlines = [DoctorHoursInline,]
# more stuff
class DoctorInline(admin.TabularInline):
model = Doctor
# This will show a link to edit the Doctor model
# in the Doctor table of the Clinic change form.
show_change_link = True
@admin.register(Clinic)
class ClinicAdmin(admin.ModelAdmin):
# stuff
inlines = [DoctorInline,]
# more stuff
Вы, конечно, можете поменять местами формы для каждого из этих ModelAdmin
и TabularInline
классов.
Документы: https://docs.djangoproject.com/en/4.0/ref/contrib/admin/#inlinemodeladmin-objects