首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Wagtail-CMS-admin中将字段的内容附加到标题字段中

在Wagtail-CMS-admin中将字段的内容附加到标题字段中
EN

Stack Overflow用户
提问于 2015-08-02 12:19:30
回答 3查看 1.2K关注 0票数 1

为了区分Wagtail CMS管理中的页面(在页面列表视图中,而不是在编辑页面视图中),title (在我的例子中)是不够的。我有一长串一种页面类型的页面(比如class BlogPage),其中一些页面可能具有相同的title。因此,我想在这个标题中添加第二个标识字段(这里是:date_from,一个DateField)。

我想到

代码语言:javascript
复制
class BlogPage(Page):
    ...
    def title(self):
    if self.date_from:
        return self.date_from + " - " + self.title
    else:
        return self.title

但是这是行不通的,没有我的defdef用于相应的摇尾-管理-模板

短版本:如何将现有字段预先/-附加到Wagtail-admin中的标题中?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-08-05 22:32:05

货车模型管理似乎做了我已经搜索到的事情:扩展wagtailadmin以显示一组定义的字段--不仅仅是title --在页面模型的基础上;就像在Django管理站点中那样。

这样我就不会改变默认的wagtailadmin页面列表--就像我在我的问题中尝试过的那样,但是在一个额外的页面列表中,hook作为一个额外的摇尾-侧边栏-导航-条目。

多亏了其他答案,我才偶然发现了这种可能性。

票数 0
EN

Stack Overflow用户

发布于 2017-04-25 14:49:08

如果您想在所有的模型管理中替换标题(是的,这包括编辑页面),Wagtail有一个内置的机制

代码语言:javascript
复制
def get_admin_display_title(self):
    return '{} - {}'.format(self.date_from, super().get_admin_display_title())
票数 1
EN

Stack Overflow用户

发布于 2015-08-02 21:19:27

title是一个实际的Django模型属性,不要试图覆盖它:https://docs.djangoproject.com/en/dev/topics/db/models/#field-name-hiding-is-not-permitted

wagtailadmin/page/list.html中的实际管理模板使用{% for page in pages %}生成循环中的页面列表,并在整个过程中通过包含(templates/wagtailadmin/pages/listing/_page_title_explore.html)调用{{ page.title}}。因此,在检查代码的基础上,Wagtail本身不支持这一点。检查另一个包括templates/wagtailadmin/pages/listing/*

然而,Django支持用自己的模板覆盖一个应用程序的模板。您可以将此模板复制到项目的模板文件夹中,同时保持相同的路径(例如,假设您的项目是用模板目录设置的)。

您必须用自己的版本替换对page.title的调用。过滤器或标签可能使这更容易。在模板中添加以下过滤器(例如,myapp/templatetetags/myapp_tags.py):

代码语言:javascript
复制
register = template.Library()

@register.filter
def uniquify_title(page):
    specific_page = page.specific
    try:
        return specific_page.date_from.strftime("%Y-%m-%d") + " - " + specific_page.title
    except AttributeError:
        return specific_page.title

然后将模板中从第7行和第9行开始的{{ page.title}}用法替换为:

代码语言:javascript
复制
{{ page|uniquify_title }}

这样做的缺点是,每次更新Wagtail时,都必须更新自己版本的list.html。你可以尝试提交一个问题,并提出一个叉子,提供一个"admin_title“可调用或类似的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31771827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档