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

如何修改Django模板链接以生成指定格式的正确URL

解决Django模板URL格式问题的步骤

别着急,三天的困扰肯定不好受,咱们一步步来解决这个问题:

1. 先调整urls.py的路径配置

你想要的目标URL是https://mysite.ua/main/client_account/1/user_main_accounts,这个结构是client_account/<pk>/user_main_accounts/,但你现有的urls.py里只有两个独立的路径,所以得先添加一个匹配这个结构的路径。

打开main应用下的urls.py,添加一条新的路径(保留你原有的两条路径):

# main/urls.py
from django.urls import path
from . import views

app_name = 'main'

urlpatterns = [
    # 你原有的两条路径
    path('user_main_account/<int:pk>/', views.user_main_account_view, name='user-main-account'),
    path('client_account/<int:pk>/', views.client_account_view, name='client-account'),
    # 新增的路径,对应目标URL结构
    path('client_account/<int:pk>/user_main_accounts/', views.your_user_main_accounts_view, name='client-account-user-main-accounts'),
]

注意这里的name='client-account-user-main-accounts'是关键,后面模板里要用到这个名称;views.your_user_main_accounts_view替换成你实际处理这个请求的视图函数。

2. 修改模板里的URL标签

原来的链接生成的是带查询参数的URL,现在我们要改成路径参数的格式,直接调用新增的URL名称并传递参数:

把模板里的代码:

<a href="{% url 'main:user-main-account' %}?=client_account{{ client_account.id }}">

替换成:

<a href="{% url 'main:client-account-user-main-accounts' pk=client_account.id %}">

这样生成的URL就会是你想要的https://mysite.ua/main/client_account/1/user_main_accounts格式了。

小提示

  • 确保新增路径对应的视图函数能正确接收pk参数(也就是client_account的id),处理对应的业务逻辑。
  • 如果你的main应用是挂载在项目根urls.py的main/路径下(比如path('main/', include('main.urls'))),那生成的URL就会自动带上main/前缀,正好符合你的需求。

内容的提问来源于stack exchange,提问作者Димаста Вайтстар

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 01:52:43