look:like:this
Django URLConf でネストされた URL 名前空間 ( which ) を定義する方法を理解しようとしています。
この前に、基本的な URL 名前空間を作成する方法を理解し、ファイルに入れる内容を含むこの簡単なサンプル スニペットを考え出しました。urls.py
from django.conf.urls import patterns, include, url
# you can only define a namespace for urls when calling include():
app_patterns = patterns('',
url(r'^(?P<pk>[\w\-]+)/$', 'yourapp.views.your_view_function',
name="your-view"),
)
urlpatterns = patterns('',
url(r'^view-function/', include(app_patterns,
namespace='yournamespace', app_name='yourapp')),
)
"""
You can now use the namespace when you refer to the view, e.g. a call
to `reverse()`:
# yourapp/models.py
from django.core.urlresolvers import reverse
# ...
class MyModel(models.Model):
def get_absolute_url(self):
return reverse('signalqueue:exception-log-entry', kwargs=dict(pk=self.pk))
"""
...この場合、 Djangoのドキュメントがまったく役に立たなかったという推論をw/r/t 。Django のドキュメントは他のすべての点で素晴らしく、これは規則の例外ですが、ネストされた URL 名前空間の定義に関する情報はさらに少ないです。
これを理解するためのスパゲティ化された試み†を投稿する代わりに、ネストされた名前空間を定義し、共有できるURLconfの率直で説得力のある、および/または自明な例を誰かが持っているか、知っているかどうかを尋ねるかもしれないと思いました。
具体的には、ビューの前にあるネストされた部分に興味があります: それらはすべてDjango アプリをインストールする必要がありますか?
†) 好奇心旺盛な方のために、(おそらくやや不可解な) 例を示します: http://imgur.com/NDn9H。testapp:views:<viewname>
下部に赤と緑で印刷された URL を取得して、名前だけではなく名前を付けようとしていましたtestapp:<viewname>
。