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

如何在Django函数视图中解析URL中的ID参数

解决Django函数视图获取URL中ID的问题

要从URL /display_listing/1 里提取ID并使用,需要分两步修改配置和视图:

1. 修改URL配置(urls.py)

首先在项目或应用的urls.py里,把URL路径改成带参数捕获的形式,用Django的路径转换器<int:listing_id>匹配整数ID:

from django.urls import path
from . import views

urlpatterns = [
    # 其他URL配置...
    path('display_listing/<int:listing_id>/', views.display_listing, name='display_listing'),
]

这里<int:listing_id>的作用是:匹配URL中的整数部分,将其命名为listing_id,并自动传递给对应的视图函数。

2. 修改函数视图

更新视图函数,让它接收listing_id参数,之后就能直接用这个变量做数据库查询:

from django.shortcuts import render, get_object_or_404
from .models import Listing  # 替换成你实际的模型名称

def display_listing(request, listing_id):
    # 用get_object_or_404处理ID不存在的情况,会自动返回404页面
    listing = get_object_or_404(Listing, id=listing_id)
    # 将获取到的数据库条目和ID传递给模板
    return render(request, 'auctions/test.html', {"listing": listing, "id": listing_id})

补充说明

直接从request对象里解析URL不是Django的规范做法,路由系统已经帮你封装好了参数捕获的逻辑,按照上面的步骤实现是最简洁、最符合框架设计的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 15:06:01