根据url中传递的参数在Django中使用order_by

VATSAL JAIN:

我正在一个基本的django电子商务网站上工作,在我的类别页面上,我有几个选项可以对项目进行排序。这是我的urls.py:

path("category/<str:sort>",views.category,name="category"),

这是我的views.py:

def类别(请求,排序):

context = {
     
    'types' : Category.objects.all(),
    'prods': Product.objects.filter().order_by(),
    'cartItems':[],
   
}    
return render(request,"category.html",context)

现在,我担心的是,当用户选择对产品进行排序时,例如,我的产品型号字段名称就很大。如果用户选择按日期排序,则我的产品模型中日期的名称为“ productaddedtimedate”,并且在url中传递该名称似乎是不合适的(category / productaddedtimedate)。同样,如果他想按反向日期排序,那么传递“ -productaddedtimedate”(减号)也不会看起来很好。因此,是否有任何解决办法,例如我可以从url中获取参数,然后在上下文中使用它之前在views.py中对其进行更改。例如,我在网址中使用参数“ date”,在views.py中将其更改为productaddedtimedate,然后在上下文中传递它。

罗希特(Rohit Bumrah):

你可以试试看 例如,如果您要在URL中有用于按日期排序的日期,则:

a=""
if parameter == "date"
    a="productaddedtimedate"

context = {
     
    'types' : Category.objects.all(),
    'prods': Product.objects.filter().order_by(a),
    'cartItems':[],
   
}    
return render(request,"category.html",context)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章