Django表现得像我希望和预期的那样,但是给了我一个警告。看来我的用例没有被考虑过。这让我很困惑,所以我的问题是:我是否会错过任何等待我的问题,或者开发人员是否错过了这个用例。
我希望网址{=IFERROR(INDEX(Tablename[ClaimIDConCat],MATCH(1,([@RelatedID]=ClaimIDData[PaymentID])*("FinalRow"=Tablename[FinalRow]),0)),"N/A")}
指向详细视图,网址person/<slug>/
指向列表视图。它比在详细视图中以persons/
开头更符合人类可读性。我使用include来使代码更整洁,例如:
persons/
现在Django告诉我,开头的斜线是不必要的 - 这是错误的,留下来的是反转的网址url(r'^person', include([
url(r'^s/$', views.foo),
url(r'^/(?P<slug>[\w-]+)/form/$', views.form),
url(r'^/(?P<slug>[\w-]+)/$', views.bar),
])),
,中间没有斜线。我不明白为什么这应该是坏风格。警告是:
person<slug>
答案 0 :(得分:3)
在你的情况下,警告是误报,但这是一个相当不寻常的用例,所以我不认为必须改变Django中的启发式。
您可以通过将网址格式更改为:
来阻止警告url(r'^persons/$', views.foo),
url(r'^person/', include([
url(r'^(?P<slug>[\w-]+)/form/$', views.form),
url(r'^(?P<slug>[\w-]+)/$', views.bar),
])),
首先,警告适用于以/
(ticket 23813)开头的所有网址。然后,有人指出在某些情况下使用斜杠是有效的,因此在settings.APPEND_SLASH = False
(ticket 27238)时警告被禁用。
如果您认为应该修改(甚至删除)支票,那么django-developers邮件列表或票证跟踪器将比Stack Overflow更好地讨论这个问题。