在Wagtail管理员中,是否有等效于Django管理员的save_model方法?

问题描述 投票:1回答:1

我有一个模型,我希望将其实例限制为特定的Wagtail Site,因此我想使用该模型自动保存该站点。在定义特定于站点的模型时,我已经定义了一个TenantAwareModel来继承:

class TenantAwareModel(models.Model):
    class Meta:
        abstract = True

    tenant = models.ForeignKey(Site, on_delete=models.CASCADE)

Wagtail将site作为request的一部分提供,因此在wagtail_hooks.py文件中,我想以与普通Django管理员相同的方式覆盖save_model。但是,我发现Wagtail的save_model没有ModelAdmin方法。为了在模型中插入从请求对象(在本例中为站点)获取的值,是否可以在Wagtail管理员中拦截保存操作?我认为我无法使用pre_save信号,因为request中没有pre_save()

django wagtail
1个回答
0
投票

正在寻找答案,并到达了此职位。我试图拦截电子邮件生成django应用程序上的save方法,但是还发现这根本行不通。

看来,在Wagtail ModelAdmin实现中,我们所拥有的只是简单的表单验证和数据保存...

https://github.com/wagtail/wagtail/blob/c72a4e09413bc6fc3a9cac8ed173378aa8652925/wagtail/contrib/modeladmin/views.py#L167

这里是班上所有的选项...

https://github.com/wagtail/wagtail/blob/c72a4e09413bc6fc3a9cac8ed173378aa8652925/wagtail/contrib/modeladmin/options.py#L62

这表明可以编写自己的视图来进行创建和编辑,但是如果您必须重写所有业务逻辑并将其放入自定义视图中以获取其他内容,则可以否定“ django模型的简单注册”概念。而不是基本的CRUD功能。

© www.soinside.com 2019 - 2024. All rights reserved.