![](/img/trans.png)
[英]Django NoReverseMatch exception with cache_page in urls.py
[英]NoReverseMatch and urls.py
每當我嘗試使用gitpaste運行搜索時,我都會收到TemplateSyntaxError
:
<a href='{% url owner_pastes owner=result.object.owner.pk %}'>
{{ result.object.owner }}
</a>
urls.py的布局為:
from django.conf.urls.defaults import patterns, include, url
from django.views.generic.simple import redirect_to
urlpatterns = patterns('saic.paste.views',
url(r'^live/$', 'live_paste', name='live_paste'),
url(r'^(?P<pk>\d+)/$', redirect_to, {'url': '/paste/%(pk)s/'}),
url(r'^(?P<pk>\d+)/(?P<private_key>[a-zA-Z0-9]+)?/?$', redirect_to, {'url': '/paste/%(pk)s/%(private_key)s/'}),
url(r'^owner/$', redirect_to, {'url': '/owner/all/'}),
url(r'^owner/anonymous/', 'user_pastes', name='anon_pastes'),
url(r'^owner/(?P<owner>.+)/', 'user_pastes', name='user_pastes'),
url(r'^paste/(?P<pk>\d+)/adopt/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_adopt', name='paste_adopt'),
url(r'^paste/(?P<pk>\d+)/embed/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_embed', name='paste_embed'),
url(r'^paste/(?P<pk>\d+)/edit/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_edit', name='paste_edit'),
url(r'^paste/(?P<pk>\d+)/fork/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_fork', name='paste_fork'),
url(r'^paste/(?P<pk>\d+)/favorite/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_favorite', name='paste_favorite'),
url(r'^paste/(?P<pk>\d+)/delete/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_delete', name='paste_delete'),
url(r'^paste/(?P<pk>\d+)/raw/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_raw', name='paste_raw'),
url(r'^commit/(?P<pk>.+)/adopt/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'commit_adopt', name='commit_adopt'),
url(r'^commit/(?P<pk>.+)/download/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'commit_download', name='commit_download'),
url(r'^paste/(?P<pk>\d+)/(?P<private_key>[a-zA-Z0-9]+)?/?$', 'paste_view', name='paste_view'),
url(r'^users/$', 'users', name='users'),
url(r'^favorites/$', 'favorites', name='favorites'),
url(r'^accounts/login/$', 'login', name='login'),
url(r'^accounts/logout/$', 'logout', name='logout'),
url(r'^accounts/register/$', 'register', name='register'),
url(r'^accounts/preference/$', 'preference', name='preference'),
url(r'^accounts/timezone/$', 'set_timezone', name='set_timezone'),
url(r'^$', 'paste', name='paste'),
)
通過閱讀Django文檔,似乎我需要owner
的url模式。 這是我得到的其余錯誤:
渲染時捕獲到NoReverseMatch:找不到帶有參數'()'和關鍵字參數'{'owner':5}'的'owner_pastes'反向。
好像URL在那里。 怎么了?
根據以下行,URL的名稱不是owner_pastes
而是user_pastes
:
url(r'^owner/(?P<owner>.+)/', 'user_pastes', name='user_pastes'),
嘗試這個:
<a href='{% url user_pastes owner=result.object.owner.pk %}'>{{ result.object.owner }}</a>
旁注:請注意,對於Django> = 1.5,您需要將第一個參數用引號引起來(否則將其視為變量):
<a href='{% url "user_pastes" owner=result.object.owner.pk %}'>{{ result.object.owner }}</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.