繁体   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