python - 如何在 django-models 中以特定/自定义的方式订购数据?
问题描述
这是我的文件
models.py
from django.db import models
from django.urls import reverse
class Product(models.Model):
PRODUCTS_CATEGORY = [
('None', 'None'),
('Sterilisation', 'Sterilisation'),
('Cleaning Chemistry', 'Cleaning Chemistry'),
('Bacterial Barrier', 'Bacterial Barrier'),
('Waste Management', 'Waste Management'),
('Instrument Tracking', 'Instrument Tracking'),
('Validation', 'Validation')
]
prod_id = models.AutoField
prod_name = models.CharField(max_length=100)
prod_category = models.CharField(
max_length=100, choices=PRODUCTS_CATEGORY, default='None')
prod_desc = models.TextField()
prod_img = models.ImageField(upload_to='product_images')
slug = models.SlugField(null=True, blank=True)
def __str__(self):
return self.prod_name
视图.py
def product(request):
allProds = []
ster_prods = []
catprods = Product.objects.values('prod_category', 'id')
cats = {item['prod_category'] for item in catprods}
for cat in cats:
prod = Product.objects.filter(prod_category=cat)
prod = prod.order_by('-prod_name')
# print('prod is', prod[0])
n = len(prod)
nSlides = n // 4 + ceil((n / 4) - (n // 4))
allProds.append([prod, range(1, nSlides), nSlides])
params = {'allProds': allProds,
'ster_prods': ster_prods}
return render(request, 'website/products.html', params)
此代码显示以下视图:
第一类
- 产品一
- 产品 2
- 产品 3
第 2 类
- 产品一
- 产品 2
- 产品 3
第 3 类
- 产品一
- 产品 2
- 产品 3
类别是随机顺序的。即每次刷新页面/添加产品时顺序都会更改。
你们都可以帮我获得按我想要的特定顺序而不是随机顺序列出的类别吗?我想要的顺序是
- 消毒
- 产品一
- 产品 2
- 产品 3
- 清洁化学
- 产品一
- 产品 2
- 产品 3
- 细菌屏障
- 产品一
- 产品 2
- 产品 3
- 仪器跟踪
- 产品一
- 产品 2
- 产品 3
- 废物管理
- 产品一
- 产品 2
- 产品 3
- 验证
- 产品一
- 产品 2
- 产品 3
解决方案
推荐阅读
- angular - RXJS 错误类型错误:“this._subscribe 不是函数”
- javascript - 关于过滤 html 元素中的文本的 JavaScript 问题
- php - php - 从 ftp 服务器下载大文件并限制下载速度
- module - jq中调用自定义模块的格式是什么?
- javascript - 第二个 $.ajax 调用被跳过
- python - curl 到 python 请求错误:“没有提供 api 密钥”
- c++ - 优化 .txt 文件创建速度
- string - 将字符串转换为 bytes32 以用于solidity合约调用
- arrays - 有没有更好的方法来过滤具有多个条件的数组
- python - 解析不完整的json数组