允许用户更改项目列表的顺序

时间:2017-07-07 23:14:40

标签: django django-views

我正在尝试允许用户按照他们想要的顺序创建包含其类别的项目列表。由于某些原因,类别出现在用户选择的顺序中。但是,项目以随机顺序显示!即使我使用相同的代码!

models.py

class Category(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=250)
    order = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)])


class Item(models.Model):
    user = models.ForeignKey(User)
    category = models.ForeignKey(Category)
    title = models.CharField(max_length=250)
    order = models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)])

views.py

def items_list(request):
    category = Category.objects.filter(user=request.user).order_by("order")
    item = Item.objects.filter(user=request.user).order_by("order")
    return render(request, 'fav.html', {"items": item, "categories": category})

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试:

 def items_list(request):
    category = Category.objects.filter(user=request.user).order_by("order")
    items = [Item.objects.filter(category=c).order_by('order') for c in category]
    return render(request, 'fav.html', {"items": items})

在此之后,你应该两次编辑你的template.loop项目,第一次按类别分割项目,第二次一个类别的项目将按ID分割并按顺序排序。