Wagtail:保存Django模型后重定向

ocebsuys  于 2022-12-30  发布在  Go
关注(0)|答案(1)|浏览(159)

在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模型没有钩子。

vltsax25

vltsax251#

在我看来BaseSiteSettings是一个没有被转换为使用基于类的视图的模型,所以我认为你需要在这里修改这个编辑方法来改变'after保存'重定向:https://github.com/wagtail/wagtail/blob/main/wagtail/contrib/settings/views.py#L121

相关问题