问题描述
我有嵌套 Orderable 模型的“验证错误”问题。最好先用图片描述:
我有一个名为“CoursePage”的页面类型——在这个页面上可以添加多个 Orderables“CourseDates”——此外,每个 CourseDate 可以有一个或多个“CourseTimes”。使用 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,label="Time",heading="Add course times"
)
]
最后是 CourseTimes 模型:
class CourseTimes(Orderable):
"""multiple course times for the CourseDates Orderable."""
date_parent = ParentalKey(
"kswebsite.CourseDates",related_name="course_times",on_delete=models.SET_NULL,)
time_from = models.TimeField(
"From",)
time_to = models.TimeField(
"To",)
time_description = models.CharField(
"Descr",max_length=20,default="Kurseinheit",)
panels = [
FieldRowPanel(
[
FieldPanel("time_from",FieldPanel("time_to",],),FieldPanel("time_description",]
我可以成功地将多个 CourseDate 添加到一个 CoursePage
但是,每当我选择添加 CourseDate 并同时添加 CourseTime,然后单击保存草稿或发布时,我都会收到以下验证错误:
显然,CourseDate 已正确保存,而 CourseTime 未正确保存。
我查看了数据库以更好地了解表之间的关系,我模糊的猜测是 wagtail 试图同时保存 CourseDates 和 CourseTimes。这行不通,因为在 coursedates 表中添加相关 CourseDate 之前,CourseDates 条目/主键必须存在。
长话短说:我如何建议 wagtail 管理面板以正确的顺序保存数据:首先保存到 CourseDates 表 - 然后才保存到 CourseTimes 表。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)