Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django url表达式变量正在返回url的其余部分_Python_Regex_Django - Fatal编程技术网

Python Django url表达式变量正在返回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

在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
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')