我对嵌套的可订购模型的“验证错误”有疑问。最好先用图片来描述:
我有一个名为“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,然后单击“保存草稿”或“发布”时,我都会收到以下验证错误:
显然,CourseDate已正确保存,但CourseTime未正确保存
我查看了数据库以更好地理解表之间的关系,我模糊地猜测wagtail试图同时保存CourseDates和CourseTime。这无法工作,因为在CourseDates表中添加相关CourseDate之前必须存在CourseDates条目/主键
长话短说:我如何建议wagtail管理面板以正确的顺序保存数据:首先保存到CourseDates表,然后才保存到CourseTimes表
提前感谢您提供有关如何解决此问题的任何提示!:-)
目前没有回答
相关问题 更多 >
编程相关推荐