在views.py中获取url - python django

Posted

技术标签:

【中文标题】在views.py中获取url - python django【英文标题】:Get urls in views.py - python django 【发布时间】:2016-04-03 10:26:03 【问题描述】:

我的 urls.py

url(r'^ACB/(?P<slug>.*)/$', views.ACB.as_view(), name='ACB'),

我有一个要求,我需要将这个 url 发送到几个随机 slug 作为 API 响应的一部分

我不想要请求的url,而是不同视图的url

【问题讨论】:

你的问题是什么? 这不是很清楚。您想要ACB 视图中的请求网址吗? 更新了问题 【参考方案1】:

使用reverse

from django.core.urlresolvers import reverse

my_url = reverse('ACB')

这将在没有任何参数的情况下反转 ACB url。如果存在 slug,您可以将其传递给 args

my_url = reverse('ACB', args=(slug,))

https://docs.djangoproject.com/en/1.9/ref/urlresolvers/#reverse

【讨论】:

如果存在,我会用my_url = reverse('ACB', args=(slug, )) 更新它,因为 slug 是一个可选参数。 你能得到 OP 想要的东西真是太神奇了。我仍然无法理解他的问题。【参考方案2】:

2021 年更新(Django 2.0+)

在 Django 2.0 中,模块 django.core.urlresolvers 已移至 django.urls

问题的新解决方案:

from django.urls import reverse

my_url = reverse('ACB')
my_url = reverse('ACB', args=(slug,))

有关详细信息,请参阅:

ImportError: No module named 'django.core.urlresolvers' https://docs.djangoproject.com/en/3.2/releases/1.9/#features-deprecated-in-1-9

【讨论】:

以上是关于在views.py中获取url - python django的主要内容,如果未能解决你的问题,请参考以下文章

Django之视图(views.py)

使用TDD理解views.py与urls.py的关系

如何在views.py中重定向CreateView的URL

Python(四十六)url路由分配及模板渲染方式

当我们可以通过在urls.py中的views.py和urls中添加视图时,是否需要在ModelAdmin类的管理页面中添加自定义视图?

Django views.py 视图函数