Python Django视图仅将主键从字段返回到模板,无数据

Python Django视图仅将主键从字段返回到模板,无数据,python,django,django-templates,django-views,django-oscar,Python,Django,Django Templates,Django Views,Django Oscar,我有一个模型,它在产品表中有一列categories,其中有一个条目“beds” 当我试图获得一个类别或产品列表(所有产品都有名称、描述等)时,我能得到的唯一返回的是数字 这是my views.py中的相关视图 def product(request): template = loader.get_template('/home/user/webapps/webapp/my_site/main_page/templates/main_page/product.html') pro

我有一个模型,它在产品表中有一列categories,其中有一个条目“beds”

当我试图获得一个类别或产品列表(所有产品都有名称、描述等)时,我能得到的唯一返回的是数字

这是my 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 %}

因为我们谈论的是django oscar,有很多事情需要理解:

要从oscar检索模型,您需要使用
get\u model
,这是它们自己动态导入感兴趣的模型的实现。
get\u model
获取了由定义的模型

如果要列出产品及其信息,需要执行以下操作:

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 %}
{%例如prods%}
  • {{instance.title}}
  • {%endfor%}
    您能将
    xProduct
    更正为您在那里使用的型号的实际名称吗?
    product
    是什么类型的字段?@andreihondrari xProduct不是打字错误。我认为产品是一个文本字段。我正在编辑我的问题以显示定义XProduct的行。哦,等一下,这很奇怪。你基本上是在说django oscar,而那个有“catalog.product”这个模型。但该模型上不应该有“产品”字段…如果我错了,请纠正我,但在该模板中,或在该页面上,您真正想做的是列出所有产品?我不确定如何确切地告诉我使用的是哪种类型的现场产品,我正在使用一个应用程序和模型。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 %}