You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wagtail技术问题:如何获取Orderable值自动生成页面标题

解决方案

要在ReihePage的clean方法中获取InlinePanel关联的字段值,直接通过ParentalKey的related_name访问关联条目即可,具体修改如下:

修改ReihePage的clean方法

def clean(self):
    super().clean()
    # 获取所有关联的ReihePageOrderable条目
    fach_entries = self.Fach.all()
    title_components = []
    
    for entry in fach_entries:
        # 跳过未关联FachPage的条目
        if not entry.fach:
            continue
        # 拼接单个条目标题片段
        component = f"{entry.anzahl} × {entry.fach.title}"
        title_components.append(component)
    
    # 生成最终标题,处理无关联条目的情况
    if title_components:
        new_title = " | ".join(title_components)
    else:
        new_title = "未关联任何Fach"
    
    self.title = new_title
    self.slug = slugify(new_title)

关键说明

  • self.Fach.all():由于ReihePageOrderable中ParentalKey的related_name设为"Fach",ReihePage实例可通过该属性直接获取所有关联的ReihePageOrderable对象集合。
  • 空值判断:必须检查entry.fach是否非空,因为外键设置了null=True,避免触发AttributeError。
  • 标题格式:示例用|分隔多个关联条目,你可以根据需求替换成逗号、换行或其他分隔符。
  • 笔误修正:ReihePageOrderable中的外键指向"Fachpage"(小写p),但实际类名是FachPage(大写P),建议修改为models.ForeignKey("FachPage", on_delete=models.SET_NULL, null=True),确保数据库关联正确。

内容的提问来源于stack exchange,提问作者harvey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:53:19