在Wagtail 4.1.1中保存BaseSiteSetting
模型后,我尝试将用户重定向到自定义HTML页面
我不知道如何实现这个,BaseSiteSetting
继承自Django models.Model
,这意味着可以覆盖save()
函数,但如果没有访问请求的权限,我如何进行实际的重定向?
另一个可以接受的解决方案是通过覆盖默认的BaseSiteSetting HTML template
在CMS中添加一个额外的按钮,但我似乎也无法让它工作,除了ModelAdmin模板。I've opened a StackOverflow question about that here.
自定义HTML页的视图:
def sync(request):
return render(request, "import.html", {"WS_PROTOCOL": settings.WS_PROTOCOL})
我的BaseSiteSetting模型:
@register_setting
class AnonymousSuccessStoryImportSetting(BaseSiteSetting):
"""
Setting for importing anonymous success stories.
"""
file = models.FileField(
upload_to="success_story_imports/%Y/%m/%d/",
validators=[validate_file_extension],
help_text="Upload a CSV file, then click 'Save' afterwards",
blank=True,
null=True,
)
date = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = "Importer"
我四处寻找可能的解决方案,发现了一些Wagtail挂钩,但这些挂钩只适用于Wagtail Page模型,例如after_publish_page
。
不幸的是,标准Django模型没有钩子。
1条答案
按热度按时间vltsax251#
在我看来BaseSiteSettings是一个没有被转换为使用基于类的视图的模型,所以我认为你需要在这里修改这个编辑方法来改变'after保存'重定向:https://github.com/wagtail/wagtail/blob/main/wagtail/contrib/settings/views.py#L121