django2.0的reverse

导入:
官方文档地址:https://yiyibooks.cn/xx/Django_1.11.6/topics/http/urls.html
from django.urls import reverse


urls.py
from django.conf.urls import include, url

urlpatterns = [
    url(r'^author-polls/', include('polls.urls', namespace='author-polls')),
    url(r'^publisher-polls/', include('polls.urls', namespace='publisher-polls')),
]
polls/urls.py
from django.conf.urls import url

from . import views

app_name = 'polls'
urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name='index'),
    url(r'^(?P<pk>\d+)/$', views.DetailView.as_view(), name='detail'),
    ...
]
根据以上设置,可以使用下面的查询:

如果当前的实例是其中的一个,例如我们正在渲染实例'author-polls'中的detail视图,'polls:index'将解析到'author-polls'实例的index视图;下面的两种方式都将解析到"/author-polls/"。

在基于类的视图的方法中:

reverse('polls:index', current_app=self.request.resolver_match.namespace)
和在模板中:

{% url 'polls:index' %}

Django默认支持以下5个转化器:

str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式 # /ss dds/
int,匹配正整数,包含0。
slug,匹配字母、数字以及横杠、下划线组成的字符串。 #/ss dds/这种无法匹配
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path,匹配任何非空字符串,包含了路径分隔符

posted @ 2018-04-17 18:53  nanaindi  阅读(151)  评论(0编辑  收藏  举报