2009-06-20 46 views
35

Câu hỏi rất cơ bản, nhưng tôi đang gặp sự cố khi theo dõi câu trả lời trên web. Tôi có một mẫu, mà tôi muốn liên kết đến trang quản trị django (ví dụ: localhost: 8000/admin). Mã cho điều này là gì?Liên kết đến trang quản trị django

Tôi đang tưởng tượng cái gì đó như

<a href="{% url admin.site.root %}">link to admin panel</a> 

Tuy nhiên, khi tôi cố gắng đoạn trên, chúng tôi nhận được:

Caught an exception while rendering: 
    Reverse for 'project_name.django.contrib.admin.sites.root' with 
    arguments '()' and keyword arguments '{}' not found. 

Trợ giúp?

Trả lời

8

Bạn đang sử dụng phiên bản django nào? Nếu bạn đang sử dụng thân cây, thay đổi urlpatterns quản trị của bạn từ:

(r'^admin/(.*)', admin.site.root) 

tới:

('^admin/', include(admin.site.urls)) 

Và sau đó bạn nhận được một mẫu URL nào có tên gọi là 'admin_index' mà bạn có thể tham khảo. Xem

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#reversing-admin-urls

để biết thêm thông tin

+0

tên url là 'admin: chỉ số ' – amchugh89

62

Hãy thử những gì Oggy được gợi ý nhưng sau đó sử dụng ':' thay vì '_' với Django hiện tại:

<a href="{% url 'admin:index' %}">link to admin panel</a> 
+0

Điều này đã làm cho các trick cho tôi. Với Django 1.3, bằng cách sử dụng 'admin_index' đã cho tôi một' TemplateSyntaxError': 'Bắt NoReverseMatch trong khi rendering: Đảo ngược 'admin_index' với các đối số '()' và đối số từ khóa '{}' không tìm thấy.' Sử dụng' admin: index' thay thế cung cấp URL trang web quản trị viên đang hoạt động. –

+6

Đối với bất kỳ ai đến đây từ Google, Django 1.5+ đó ​​là '{% url 'admin: index"%} ', với dấu ngoặc kép –

+0

Nếu bạn muốn liên kết tới trang con của trang quản trị, hãy xem [câu trả lời này] (https: //stackoverflow.com/a/2930241/7221965) –

Các vấn đề liên quan