wagtailadmin中的嵌套医嘱内容验证错误

2024-09-28 17:01:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我对嵌套的可订购模型的“验证错误”有疑问。最好先用图片来描述: enter image description here

我有一个名为“CoursePage”的页面类型-在此页面上可以添加多个医嘱内容“CourseDates”-此外,每个CourseDate可以有一个或多个“CourseTime”。通过使用ParentalKey建立关系

CoursePage具有以下多字段内容面板:

MultiFieldPanel(
        [
            InlinePanel(
                "course_dates",
                max_num=100,
                min_num=1,
                label="Date",
                classname="")
        ],
        heading="Course dates (add up to 100 dates)",
        classname="collapsible"
    ),

这是CourseDates模型:

class CourseDates(ClusterableModel, Orderable):
"""multiple course dates for the course page."""
page = ParentalKey("kswebsite.CoursePage", related_name="course_dates")

class Meta:
    ordering = ['date']

date = models.DateField(
    "Date",
    auto_now=False,
    auto_now_add=False,
    null=True,
    blank=False,
)

panels = [
    FieldPanel("date", classname=""),
    InlinePanel(
        "course_times", max_num=5, min_num=1, label="Time",
        heading="Add course times"
    )
]

最后是课程时间模型:

class CourseTimes(Orderable):
"""multiple course times for the CourseDates Orderable."""
date_parent = ParentalKey(
    "kswebsite.CourseDates",
    related_name="course_times",
    null=True,
    blank=False,
    on_delete=models.SET_NULL,
)

time_from = models.TimeField(
    "From",
    auto_now=False,
    auto_now_add=False,
    null=True,
    blank=False,
)
time_to = models.TimeField(
    "To",
    auto_now=False,
    auto_now_add=False,
    null=True,
    blank=False,
)
time_description = models.CharField(
    "Descr",
    max_length=20,
    default="Kurseinheit",
    null=True,
    blank=False,
)

panels = [
    FieldRowPanel(
        [
            FieldPanel("time_from", classname=""),
            FieldPanel("time_to", classname=""),
        ],
    ),
    FieldPanel("time_description", classname=""),
]

我可以成功地将多个CourseDates添加到CoursePage

然后保存,然后将CourseTime添加到此日期

但每当我选择添加CourseDate并同时添加CourseTime,然后单击“保存草稿”或“发布”时,我都会收到以下验证错误:

enter image description here

enter image description here

显然,CourseDate已正确保存,但CourseTime未正确保存

我查看了数据库以更好地理解表之间的关系,我模糊地猜测wagtail试图同时保存CourseDates和CourseTime。这无法工作,因为在CourseDates表中添加相关CourseDate之前必须存在CourseDates条目/主键

长话短说:我如何建议wagtail管理面板以正确的顺序保存数据:首先保存到CourseDates表,然后才保存到CourseTimes表

提前感谢您提供有关如何解决此问题的任何提示!:-)


Tags: falsetrueautotimemodelsnullnowdates