[英]Django view only returning incomplete data, only one field to template
[英]Django view only returning primary key from field to template, no data
我有一個模型,該模型在“產品”表中有一個列類別,該表中有一個條目“床”。
當我嘗試獲取類別或產品的列表(所有這些都具有名稱,描述等)時,我唯一能得到的就是數字。
這是我的views.py中的相關視圖
def product(request):
template = loader.get_template('/home/user/webapps/webapp/my_site/main_page/templates/main_page/product.html')
prods = xroduct.objects.values_list('product')
context={'prods': prods}
return HttpResponse(template.render(context))
這是我在Django模板中用於顯示數據的代碼
{% for instance in prods %}
<li>{{ instance }}</li>
{% endfor %}
但是,返回的所有內容(在查看網頁時使用HTML)是:
<li>(2,)</li>
<li>(1,)</li>
返回的信息應該很多。 名稱,說明等。為什么沒有通過我的視圖返回此信息?
編輯:如何定義xroduct:
from oscar.core.loading import get_class, get_model
xroduct = get_model('catalogue', 'product')
由於我們在談論django-oscar
因此有很多事情要理解:
要從oscar檢索模型,您需要使用get_model
,這是他們自己的動態導入感興趣模型的實現。 get_model
從https://github.com/django-oscar/django-oscar/blob/master/src/oscar/apps/catalogue/models.py獲取了模型,而這些模型是由https://github.com/django-定義的奧斯卡/ Django的奧斯卡/斑點/主/ SRC /奧斯卡/應用/目錄/ abstract_models.py
如果要列出產品及其信息,需要執行以下操作:
from oscar.core.loading import get_model
Product = get_model("catalogue", "Product")
def list_products(request):
template = loader.get_template(...)
products = Product.objects.all()
context = {"products": products}
return HttpResponse(template.render(context))
在模板中,您可以像下面這樣簡單地訪問實例:
{% for instance in prods %}
<li>{{ instance.title }}</li>
{% endfor %}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.