将(?P<topic\u id>\d+)中捕获的参数封装为请求对象的属性

2024-09-30 08:15:22 发布

您现在位置:Python中文网/ 问答频道 /正文

urlpatternsDjango中,向views.py发送get请求和topic_id参数

url(r'^edit_topic/(?P<topic_id>\d+)$', views.edit_topic, name='edit_topic'),

在views.py中,传递两个参数

def topic(request, topic_id):
    """Show a single topic and all its entries."""
    topic = Topic.objects.get(id=topic_id)

我想知道topic_id是否可以包含在request中,并向views.py发送一个参数

def topic(request):
    topic = Topic.objects.get(id=request.topic_id)

代码现在将遇到错误,
但在Django的实现细节中,向请求对象添加“topic_id”属性并不难实现。
如果包topic_id对请求有什么不利之处


Tags: namepyidurl参数gettopicobjects
1条回答
网友
1楼 · 发布于 2024-09-30 08:15:22

这是可以做到的,但是URL模式需要稍微改变

url(r'^edit_topic/$', views.edit_topic, name='edit_topic'),

当您将请求创建为

<domain_name>/edit_topic?topic_id=<your_id>

例如,一个请求看起来像

http://127.0.0.1:8000/edit_topic?topic_id=1000

在views.py中,当请求到达时,可以执行GET操作以获取值

def topic(request):
    topic = Topic.objects.get(id=request.GET('topic_id'))

相关问题 更多 >

    热门问题