在视图中使用URL名称

时间:2011-01-13 08:58:54

标签: django django-views

是否可以在视图中使用网址名称,就像我们可以在模板中一样?

4 个答案:

答案 0 :(得分:8)

查看reverse

上的文档

他们在这里有一个特定的例子来反转一个名为url的网址:

https://docs.djangoproject.com/en/dev/topics/http/urls/#reverse-resolution-of-urls

<强> reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)

  

viewname是函数名称   (函数引用,或者   字符串版本的名称,如果你   在urlpatterns中使用该形式)或   网址格式名称。

def myview(request):
    return HttpResponseRedirect(reverse('arch-summary', args=[1945]))

答案 1 :(得分:1)

答案 2 :(得分:1)

<script>
    var salesApiUrl = "{% url 'URLNamesHere' %}"
</script>

现在,salesApiUrl是全球性的。您也可以在js中使用var名称

答案 3 :(得分:1)

我知道这个话题已经存在多年了,但是在我自己寻找这个话题的过程中,这个话题突然出现了。我相信请求者正在views.py中寻找以下内容:

views.py

class Overview(ListView):
    model = models.data
    template_name = "overview.html"

    def get_queryset(self):
       name = self.request.resolver_match.url_name
       print(name)

请注意,我正在使用基于类的视图。在常规视图中,可以按以下方式检索名称(未经测试):

def current_url_name(request):
    html = "<html><body>Url name is {}.</body></html>".format(request.resolver_match.url_name)
    return HttpResponse(html)

网址名称位于(self。)'request'变量中。从您的观点来看,“ resolver_match.url_name”就是您要寻找的。

希望这有助于人们进行相同的搜索。