Tôi đã cố gắng tìm ra cách xác định một không gian tên lồng nhau URL (trong đó look:like:this
) trong một Django URLConf.Xác định không gian tên lồng nhau trong URLConf, để đảo ngược URL Django - có ai có ví dụ hợp lý không?
Trước đó, tôi đã tìm ra cách để làm một namespace URL cơ bản và đã đưa ra this simple example snippet, chứa những gì bạn có thể đặt trong một tập tin 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))
"""
... w/r/t khấu trừ trong đó, the Django documentation, trong trường hợp này, không hề hữu ích. Trong khi tài liệu của Django là tuyệt vời trong tất cả các khía cạnh khác, và đây là một ngoại lệ cho quy tắc, thậm chí còn có ít thông tin hơn về việc xác định các không gian tên URL lồng nhau.
Thay vì đăng các nỗ lực cố định của mình, tôi nghĩ rằng tôi có thể hỏi liệu có ai có, hoặc biết, một ví dụ đơn giản và/hoặc tự giải thích về một URLconf xác định không gian tên lồng nhau có thể chia sẻ.
Cụ thể tôi tò mò về các phần lồng nhau tiền tố xem: cần chúng tất cả được cài đặt ứng dụng Django?
†) Đối với tò mò, đây là ví dụ (có thể hơi khó hiểu): http://imgur.com/NDn9H. Tôi đã cố gắng để có được các URL in ra màu đỏ và màu xanh lá cây ở phía dưới để được đặt tên testapp:views:<viewname>
thay vì chỉ testapp:<viewname>
.
Nice, đó là thực sự đơn giản. Cảm ơn! – fish2000