2014-09-24 88 views
0

獲取對象名稱是否有任何屬性或方法來獲取objects'name通過查詢集在Django 我有這樣如何通過查詢集在Django

# in views.py 
product = [] 
product.append(Pc.objects.filter(user__name=pk)) ## user is a foreignkey 
product.append(Monitor.objects.filter(user__name=pk)) 
arr = { 'type': 1, 
     'product': product, 
     'name': name, 
     } 
return render_to_response('list.html', arr) 

在模板中的一些代碼list.html

...... 
<tbody> 
     {% for pr in product %} 
     <tr style="text-align:center" class="form-inline"> 
     <td> 
     {{ name }} 
     </td> 
     {% for p in pr %} 
     <td> 
      {{ p.number }} 
     </td> 
     <td> 
      {{ p.product }} 
     </td> 
     <td> 
      {{ p.comment }} 
     </td> 
     <td>                                            
      <a href="/update/objects/{{ p.id }}/" class="btn btn-success btn-sm" >edit</a> 
      <a href="/delete/objects/{{ p.id }}/" onclick="return confirm('Are you sure to delete?')" class="btn btn-danger btn-sm" >delete</a> 
     </td> 
     {% endfor %} 
     {% endfor %} 
     </tr> 
    </tbody> 

我應該如何得到像PC或監視器list.html中的「對象」?

回答

1

而不是嘗試獲取類型,然後在模板中顯示類名稱爲什麼你不只是添加一個靜態屬性的類?

class Pc(models.Model): 
    product_display_name = 'PC' 

class Monitor(models.Model): 
    product_display_name = 'Monitor' 
模板

然後

{% for p in pr %} 
<td> 
    {{ p.product_display_name }} 
</td> 
<td> 
    {{ p.number }} 
</td> 
{% endfor %} 

如果你真的想從類型得到名字,那麼你可以使用下面的

type(instance).__name__ 
+0

這是一個方法,通過獲取對象的名稱定義對象時添加display_name。我是一個新的django學習者,我想我還有很長的路要走。 – nnic 2014-09-24 06:31:37