注意:この質問は、最初の回答が出る前に大幅に編集されています。
やあ、
私はdjangoにかなり慣れていないので、明らかな何かが欠けている場合はお詫びします。
次のようなurls.pyファイルがあります。
urlpatterns = patterns(
'',
(r'^$', 'faros.lantern.views.home_page'),
(r'^login/$', 'django.contrib.auth.views.login'),
(r'^logout/$', 'django.contrib.auth.views.logout'),
(r'^about/$', 'faros.lantern.views.about_page_index', {}, 'about_page_index'),
(r'^about/(?P<page_id>([a-z0-9]+/)?)$', 'faros.lantern.views.about_page', {}, 'about_page'),
)
次のようなビュー:
def about_page_index(request):
try:
return render_to_response('lantern/about/index.html', context_instance=RequestContext(request))
except TemplateDoesNotExist:
raise Http404
def about_page(request, page_id):
page_id = page_id.strip('/ ')
try:
return render_to_response('lantern/about/' + page_id + '.html', context_instance=RequestContext(request))
except TemplateDoesNotExist:
raise Http404
そしてこれを含むテンプレート:
<a href="{% url lantern.views.about_page_index %}">Contact</a>
<a href="{% url lantern.views.about_page page_id="contact" %}">Contact</a>
このエラーメッセージが表示されます:
Caught an exception while rendering: Reverse for '<function about_page at 0x015EE730>' with arguments '()' and keyword arguments '{'page_id': u'contact'}' not found. The first reverse works fine (about_page_index), generating the correct URL without error messages.
これは、about_pageビュー(request
)へのリクエスト引数が使用されているためだと思います。そのため、テンプレートでURLを生成するときにそれを渡す必要があります。問題は、私はそれに到達する方法がわからないことです、そして周りを検索しても私はどこにも行きません。何か案は?
ありがとう、
ドム
ps余談ですが、アプリで静的な「約」タイプのページを処理するその方法は、恐ろしいまたは合理的に見えますか?私は基本的にURLを取得しており、テンプレートへのパスはabout/
ビットの後に来るものであると想定しています。つまり、静的ページをアプリの一部のように見せることができるので、ユーザーはaboutセクションにジャンプして、元の場所に戻ることができます。これがジャンゴイックなのかバカなのかについてのコメント/フィードバックに感謝します!