簡體   English   中英

Django視圖僅將主鍵從字段返回到模板,沒有數據

[英]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_modelhttps://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM