我想在wagtail页面管理预填充字段。特别是我想采取当前登录的管理员/编辑器用户的用户名,并填写在表单中作为一个字符串。我的页面的简化版本看起来像这样:
class ItemPage(Page):
author = models.CharField(max_length=255, default="")
content_panels = Page.content_panels + [
FieldPanel('author'),
]
我不想在模型的作者字段中设置默认值-它应该是用户特定的。
我不想在保存/更改模型后使用save
方法或信号。用户应该看到那里有什么,并且应该有能力改变它。此外,页面将自动生成,无需管理界面。
我想我需要像https://stackoverflow.com/a/14322706/3960850这样的东西,但不是在Django中,而是在Wagtail ModelAdmin中。
如何在Wagtail中实现这一点?
2条答案
按热度按时间hc2pp10m1#
下面是一个基于gasmans注解的示例,以及他们链接的新代码附带的文档:
您也可以通过覆盖models
init
方法来实现这一点,但上面的方法要好得多。agxfikkp2#
我想做一些类似的事情,并发现了如何做到这一点。
任务有一个博客(使用Wagtail构建)允许多个文章作者。文章页面还暴露了写文章的作者的详细信息(个人资料图片,工作,作者的介绍)。
解决方案因此,使用应添加的字段扩展默认用户模型
https://docs.wagtail.org/en/stable/advanced_topics/customisation/custom_user_models.html
并访问模板中的用户(通过所有者)。
https://docs.wagtail.org/en/stable/reference/pages/model_reference.html#wagtail.models.Page.owner