如何将参数传递给视图并访问所有对象?

时间:2013-06-24 13:38:15

标签: python django django-models django-views

我正在使用slug作为url的访问点。

http://127.0.0.1:8000/category/blah/ -> blah is the slug. 

这是我的网址代码。

 url(r'^category/(?P<category>[A-Za-z]\w*)/$', individual_category),

这是我的观点

def individual_category(request, category): 

    pro =  get_object_or_404(Product, username= category) -> (This doesnt seem to work ))
    return render_to_response('individual_category.html', {'obs':pro})

这是我的临时工

<html>
<body>
<p> The list of products are </p>
<b>{{category}}</b>

{% for items in obs %}

    <li>{{items.category}}</li>
    <li>{{items.title}}</li>
    <img src = "/images/{{items.image}}"</li>   

    <br>
    <br>

{% endfor %}



</body>
</html>

1 个答案:

答案 0 :(得分:1)

据我所知,你的模型定义是错误的查询:

pro =  get_object_or_404(Product, username= category) -> (This doesnt seem to work ))

您正在尝试选择其用户名等于类别的产品。现在我不知道您的模型Product是否有字段username(我对此表示怀疑),但我的猜测是您需要在category字段上进行过滤。

但是get_object_or_404只选择1个对象并看到您的模板,这不是您想要的。

我认为你最好使用:

pro = Product.objects.filter(category=category)

如果category是模型,则需要先从数据库中获取对象,因此get_object_or_404方法是合适的。