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

时间:2018-12-15 22:56:28

标签: python django django-templates django-views django-oscar

我有一个模型,该模型在“产品”表中有一个列类别,其中有一个条目“床”。

当我尝试获取类别或产品的列表(所有这些都具有名称,描述等)时,我唯一能得到的就是数字。

这是我的观点中的相关视图。py

{% for instance in prods %}
    <li>{{ instance }}</li>
{% endfor %}

这是我在Django模板中用于显示数据的代码

<li>(2,)</li>
<li>(1,)</li>

但是,返回的所有内容(在查看网页时都是HTML格式)是

from oscar.core.loading import get_class, get_model

xroduct = get_model('catalogue', 'product')

应该返回更多的信息。名称,说明等。为什么没有通过我的视图返回此信息?

编辑:xroduct的定义方式:

$str = "GUJARAT (24)";
echo '<br />1.';
print_r(sscanf($str, "%s (%d)"));
echo '<br />2.';
print_r(preg_split('/[\(]+/', rtrim($str, ')')));
echo '<br />3.';
echo substr($str, strpos($str, '(')+1, strpos($str, ')')-strpos($str, '(')-1);
echo '<br />4.';
echo strrev(strstr(strrev(strstr($str, ')', true)), '(', true));
echo '<br />5.';
echo preg_replace('/(\w+)\s+\((\d+)\)/', "$2", $str);

1 个答案:

答案 0 :(得分:1)

自从我们谈论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-oscar/django-oscar/blob/master/src/oscar/apps/catalogue/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 %}