Python Django url表达式变量正在返回url的其余部分
在my urls.py中,我有一个url表达式,需要在其中获取视图中主题的名称Python Django url表达式变量正在返回url的其余部分,python,regex,django,Python,Regex,Django,在my urls.py中,我有一个url表达式,需要在其中获取视图中主题的名称 url(r'^notebook/(?P<subject>.+?)/new/entry/$', view, name) url(r'^notebook/(?P.+)/new/entry/$,视图,名称) 但是,这不仅返回主题,还返回以下url。IE:化学/新的/入门级如何让它返回化学 编辑: 一般来说,我的url.py可能也有问题。似乎它可能会触发主体视图。以下是相关代码: # urls.py urlp
url(r'^notebook/(?P<subject>.+?)/new/entry/$', view, name)
url(r'^notebook/(?P.+)/new/entry/$,视图,名称)
但是,这不仅返回主题,还返回以下url。IE:化学/新的/入门级如何让它返回化学
编辑:
一般来说,我的url.py可能也有问题。似乎它可能会触发主体视图。以下是相关代码:
# urls.py
urlpatterns = [
url(r'^notebook/(?P<subject>.+?)/$', views.subject, name='subject'),
url(r'^notebook/(?P<subject>[^/]+)/new/entry/$', views.NewEntryView.as_view(), name='new_entry'),
]
#url.py
URL模式=[
url(r“^notebook/(?P.+?)/$”,views.subject,name='subject'),
url(r“^notebook/(?P[^/]+)/new/entry/$”,views.NewEntryView.as_view(),name='new_entry'),
]
该url被更激进(尽管不是贪婪)的模式截获:
url(r'^notebook/(?P.+?)/$,views.subject,name='subject')
注意,第二个模式是这个模式的子集
您应该切换url模式的顺序,以便Django首先处理更受限的url:
urlpatterns = [
url(r'^notebook/(?P<subject>[^/]+)/new/entry/$', views.NewEntryView.as_view(), name='new_entry'),
url(r'^notebook/(?P<subject>.+?)/$', views.subject, name='subject'),
]
urlpatterns=[
url(r“^notebook/(?P[^/]+)/new/entry/$”,views.NewEntryView.as_view(),name='new_entry'),
url(r“^notebook/(?P.+?)/$”,views.subject,name='subject'),
]
或者将第一个更改为否定字符类,以便斜杠不匹配:
url(r'^notebook/(?P<subject>[^/]+)/$', views.subject, name='subject')
url(r'^notebook/(?P[^/]+)/$”,views.subject,name='subject')
你的url是这样的吗笔记本/化学/新/条目/新/条目/
?或者您真的在引用主题
arg?添加使用URL编辑的相关视图
code。现在这两种模式的视图都是subject=subject.objects.all().get(name=subject),您称之为贪婪模式。有什么更好的方法可以防止将来发生类似的事情-编辑注释thanks@mei错别字,不应该贪心。使用否定字符类。
url(r'^notebook/(?P<subject>[^/]+)/$', views.subject, name='subject')