2012-11-25 70 views
0

我正在完成正式的Django教程,我被卡在第3部分。由於模板也用於part2的最後部分,我將描述我做了什麼:Django教程:模板和視圖

第2部分告訴我:將模板admin/base_site.html從Django本身的源代碼(django/contrib/admin/templates)的默認Django管理模板目錄中複製到任意目錄的admin子目錄中,在TEMPLATE_DIRS中重新使用「。因此,我創建了一個新的目錄「admin」,它具有以下相對路徑(請注意,在Django使用'mysite'目錄名稱時,我使用'django_test':/ django_test/polls/templates/admin。 。base_site.html文件到這個目錄

當我渲染的文件在我的本地瀏覽器,它說:{% extends "admin/base.html" %} {% load i18n %} {% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %} {% block branding %}{% trans 'Django administration' %}{% endblock %} {% block nav-global %}{% endblock %}

第3部分有我在一個新的子目錄民調/ index.html中創建一個index.html文件。但是當我在我的網絡瀏覽器(使用本地主機服務器)中加載這個文件時,我只是看到了html代碼而不是一個項目符號列表(見下文)

注意,我也是在我的settings.py文件來告訴Django編輯TEMPLATE_DIRS它可以找到的index.html在/用戶/ MYNAME /網站/ django_test/django_test /模板

下面我將粘貼代碼,我的本地服務器呈現(而不是項目符號列表,這是我想要的)。你知道爲什麼這個代碼被渲染,而不是項目符號列表嗎?

<html> 
<head><title>Test</title></head> 

<body> 
{% if latest_poll_list %} 
    <ul> 
    {% for poll in latest_poll_list %} 
     <li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li> 
    {% endfor %} 
    </ul> 
{% else %} 
    <p>No polls are available.</p> 
{% endif %} 

</body> 
</html> 

我不知道我是否在組織文件的過程中犯了錯誤。可能有人對我做錯了什麼有所瞭解?一旦你得到了它的竅門

files

+0

究竟是什麼地址你放入瀏覽器來查看? –

+0

如果您包含views.py代碼和urls.py代碼,可能會很有用。 –

+0

我將以下地址放入我的瀏覽器中:file://localhost/Users/myname/Sites/django_test/django_test/templates/polls/index.html – user1552159

回答

0

Django管理站點是容易的。

採取的步驟是:

-Uncomment Django管理網站在urls.py

- 製作的CSS提供給網站管理員通過複製管理文件夾(Django的包內)到在settings.py中的STATIC_ROOT中指定的文件夾或在您的PYTHONPATH上提供可用的文件夾

換句話說,您不需要爲管理站點創建模板。但是,您需要創建模板來訪問您在項目中創建的視圖

2

正如您在評論中所說的,您將文件路徑放入瀏覽器。當然,你會看到模板的文本,因爲你完全繞過Django並讓瀏覽器從磁盤加載未渲染的模板。

正如本教程所述,您需要讓Django通過其正常的URL機制來提供模板並進行呈現。在該部分的前面部分,您前往localhost:8000/admin/查看管理網站 - 這並沒有因爲您更換了模板而改變。回到那個地址,你會看到你的更新和渲染模板。

+0

謝謝。這很有幫助。現在,我仍然收到一個錯誤:TemplateSyntaxError at/polls/ 無法解析其餘部分:'poll.id'from'poll.id'你知道爲什麼會發生這種情況嗎? – user1552159

+0

當我將以下內容放入瀏覽器時,我收到了TemplateSyntaxError:http:// localhost:8000/polls /。但是,當我添加/ admin /時,我得到管理視圖。我想這就是我應該得到的。謝謝。 – user1552159

+0

您上面發佈的模板不會給出該錯誤。我懷疑你沒有發佈你使用的實際代碼 - 例如注意問題中的版本在'a'標籤內有'poll.question',但是你的錯誤信息在那裏顯示'poll.id'。請剪切並粘貼模板的確切內容。 –