2013-06-21 143 views
1

我想在Djnago中使用contrib.admin的templatetags。要做到這一點,需要在settings.py中添加INSTALLED_APPS使用Django管理模板標籤

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    ... 
) 

但是當我嘗試使用其中一個標籤時,它說Invalid block tag: 'x'。我試圖使用'search_form''admin_list_filter'標籤,我看到了他們的錯誤。

{% block search %}{% search_form cl %}{% endblock %} 

{% for spec in cl.filter_specs %}{% admin_list_filter cl spec %}{% endfor %} 

我可能會錯過什麼?

謝謝

回答

1

來自Django管理員的模板標記實際上不可重複使用。要使用search_form標記,您必須提供ChangeList實例,該實例與Django管理員緊密耦合。

如果您能夠重複使用標籤,則必須首先使用load標籤庫。 search_form標記位於django.contrib.admin.templatetags.admin_list。因此,在使用之前,您必須加載admin_list標籤。

{% load admin_list %} 
{% search_form cl %} 
+0

謝謝你的解決方案。我也想問另一個關於'tags'的問題。現在我可以通過加載'admin_list.py'在我的自定義管理頁面中使用它們。但是我不能在admin中使用'html'和'static files'。我是否必須將使用的文件從管理文件夾移至靜態文件文件夾?我不能使用它們而不移動。例如'search_form'會返回一個'html'內容,但是我猜它沒有看到'admin/search_form.html'路徑,它什麼也沒有返回 –

+0

你最好問這個問題。在評論中回答太冗長而複雜。 – Alasdair

+0

對不起,我問過這個問題,它在http://stackoverflow.com/questions/17234813/accessing-static-files-in-django-admin-packages –