我有一个扩展基页模型的Wagtail模型:
models.py
class EmployeePage(Page):
eid = models.PositiveIntegerField(unique=True)
active = models.BooleanField(blank=True)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
...
content_panels = [
FieldPanel('eid'),
FieldPanel('first_name'),
FieldPanel('last_name'),
]
我只是通过每日API导入脚本直接将active
字段更新为实时模型,因此我希望它完全从CMS中排除。
import_script.py
employee = EmployeePage.objects.get(eid=imported_row.eid)
employee.active = imported_row.active
employee.save()
我可以从CMS编辑视图中排除active
字段,但不包含在上面content_panels
中,但这似乎只是一个整容,因为值仍然总是包含在页面中修订,它覆盖了我的导入值。如何从页面修订中排除某个字段?
答案 0 :(得分:1)
这是一个有点hacky的解决方案,但似乎有效。不是从页面修订中排除字段,而是将代码添加到更新所有页面修订的导入脚本中。
<强> import_script.py 强>
employee = EmployeePage.objects.get(eid=imported_row.eid)
employee.status = imported_row.status
employee.save()
# Updates all page revisions
revisions = PageRevision.objects.filter(page=employee)
for r in revisions:
r.active = imported_row.active
r.save()