gpt4 book ai didi

django - 为什么 MyPage._meta.get_field ("title").verbose_name 更改了 Wagtail 中所有标题的标签?

转载 作者:行者123 更新时间:2023-12-03 23:35:19 26 4
gpt4 key购买 nike

我的 Wagtail 项目中有几个应用程序,其中之一是包含新闻(页面)的“新闻”。我想在管理员中将标题的标签“title”覆盖为“headline”。

News._meta.get_field("title").verbose_name = "Headline"

结果,我在所有应用程序和页面中获得了所有标题的标签“标题”。为什么我会有这种奇怪的效果?

更新:

# news/models.py

class NewsDetails(Page):
template = "news/news_details.html"

news_text = RichTextField(features=['h2', 'h3', 'bold', 'italic', 'link', 'ol', 'ul',])
news_image = models.ForeignKey(
"wagtailimages.Image",
null=True,
blank=False,
on_delete=models.SET_NULL,
)

content_panels = Page.content_panels + [
ImageChooserPanel("news_image"),
FieldPanel("news_text")
]

class Meta:
verbose_name = "News"

parent_page_types = ['news.NewsList']


NewsDetails._meta.get_field("title").verbose_name = "Headline"

最佳答案

这种方法的问题在于,当您运行 django-admin.py makemigrations 时命令,Django 将为 Wagtail 核心生成迁移(即使它是通过 pip 安装的)。

为了避免这种情况,最好使用自定义 base_form_class在您的 NewsDetails模型。此方法适用于更改其他属性,例如 help_text还有:

from wagtail.admin.forms import WagtailAdminPageForm

class NewsDetailsForm(WagtailAdminPageForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

# Manually edit the default form's title attributes:
title = self.fields['title']
title.verbose_name="Headline"
title.help_text="Some headline..."


class NewsDetails(Page):
template = "news/news_details.html"

news_text = RichTextField(features=['h2', 'h3', 'bold', 'italic', 'link', 'ol', 'ul',])
news_image = models.ForeignKey(
"wagtailimages.Image",
null=True,
blank=False,
on_delete=models.SET_NULL,
)

content_panels = Page.content_panels + [
ImageChooserPanel("news_image"),
FieldPanel("news_text")
]

class Meta:
verbose_name = "News"

parent_page_types = ['news.NewsList']

# Important line below:
base_form_class = NewsDetailsForm

关于django - 为什么 MyPage._meta.get_field ("title").verbose_name 更改了 Wagtail 中所有标题的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59289938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com