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

如何显示URL对应的标题而非URL地址?附Django路由配置

在Django中显示URL对应标题而非原始URL的方法

1. 先让视图传递对应模型对象到模板

首先得确保你的视图能从数据库里拿到对应ID的模型实例,这样模板才能获取到标题信息。举个例子:

详情页(details)视图改造

from django.shortcuts import get_object_or_404, render
from .models import Service  # 这里替换成你实际的模型类

def details(request, services_id):
    # 根据ID获取服务对象,不存在则返回404页面
    service = get_object_or_404(Service, id=services_id)
    # 把对象传给模板
    return render(request, 'details.html', {'service': service})

项目页(program)视图同理处理

from .models import Program  # 替换成你实际的项目模型类

def program(request, prgmm_id):
    program = get_object_or_404(Program, id=prgmm_id)
    return render(request, 'program.html', {'program': program})

2. 在模板里展示标题而非URL

场景1:显示当前页面的标题

比如在details.html中,要展示当前服务的标题,直接调用模型的标题字段就行:

<h1>{{ service.title }}</h1>

(如果你的模型标题字段不是title,换成你实际的字段名,比如name)

场景2:生成带标题的跳转链接

如果是在首页或列表页做跳转链接,用Django的url模板标签生成URL,同时把模型标题作为链接文本:

<!-- 假设首页模板里有一个服务列表services_list -->
<ul>
  {% for service in services_list %}
    <li>
      <a href="{% url 'details' service.id %}">{{ service.title }}</a>
    </li>
  {% endfor %}
</ul>

项目页的链接写法类似:

<a href="{% url 'program' program.id %}">{{ program.name }}</a>

3. 额外需求:在视图中获取标题用于页面元信息

如果要把标题设置成HTML页面的<title>标签内容,可以在视图里先提取标题再传给模板:

def details(request, services_id):
    service = get_object_or_404(Service, id=services_id)
    page_title = service.title
    return render(request, 'details.html', {'service': service, 'page_title': page_title})

然后在模板的<head>里使用:

<title>{{ page_title }}</title>

小提示

  • 一定要确保你的模型(比如Service、Program)有存储标题的字段,没有的话需要先给模型加字段并迁移数据库。
  • 用get_object_or_404比直接用Model.objects.get()更友好,能避免ID不存在时抛出服务器错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:03:01