2013-09-23 16 views
0

$蟒蛇輸出manage.py殼Django的HTML文件和Python對象

>>> a=Mocument.objects.all() 
>>> a 
[<Mocument: abc.xlsx>, <Mocument: 1.csv>, <Mocument: ok.csv>, <Mocument: 11.csv>, <Mocument: 12.csv>] 
>>> a[0] 
<Mocument: abc.xlsx> 
>>> for i in a: 
...  print i 
... 

這裏是輸出

abc.xlsx 
1.csv 
ok.csv 
11.csv 
12.csv 

到這裏所有偉大。問題開始時,我嘗試檢索HTML模板中的數據。 這裏是我的html文件的代碼

<html> 
    <head> 
     <meta charset="utf-8"> 
     <title>Minimal Django File Upload Example</title> 
    </head> 

    <body> 
     <!-- List of uploaded documents --> 
     {% a=Mocument.objects.all() %}  
     {% for i in a %} 
      <p>{% print i %}</p>  
     {% endfor %} 

    </body>   
</html> 

這裏是錯誤的詳細信息

Error:-------------------- Exception Value: Invalid block tag: 'a=Mocument.objects.all()' 

請幫助。

+0

您不能像這樣在模板中分配變量。在視圖的模板上下文中定義「a」。 – stormlifter

回答

2

你沒有寫出有效的django模板代碼。你不能在模板中使用任何python代碼。你必須使用特定的django標籤和過濾器。這裏有一個閱讀:https://docs.djangoproject.com/en/1.5/topics/templates/

我你的情況,你應該這樣做:

{% for i in mocument_objects %} 
    <p>{{ i }}</p>  
{% endfor %} 

您將需要通過monument_objects到從視圖模板內容。

+0

你是對的,我做了一樣,因爲它是在這篇文章http://stackoverflow.com/questions/5871730/need-a-minimal-django-file-upload-example/8542030#8542030。除了不打印文件名之外,它做的一切都是如此。即使是BULLETS也被打印,但文件名缺失/空白 –

+0

您是否覆蓋'Mocument'模型上的'__unicode__'方法? – jproffitt

+0

model.py中有兩個類,我添加了def __unicode __(self): \t return self.mocfile 。可以嗎? –