python - 根据类别 django 获取数据
问题描述
(任何建议将不胜感激)我有文章的模型,如
class Articles(models.Model):
restaurant = models.ForeignKey(Restaurant, on_delete=models.CASCADE , blank=True, null=True)
articlename = models.CharField(max_length=50, null=False, blank=False)
price = models.DecimalField(max_digits=10, decimal_places=2)
category = models.ForeignKey(Categories, on_delete=models.CASCADE , blank=True, null=True)
现在我想以“每个类别都将以数据库对象形式的所有文章”之类的形式获取数据
例如我有 2 篇文章,1 篇是“article1 有 cat1”,第二篇是“article2 有 cat2” 现在我想获取这样的数据 在 djangodata:[ cat1:[{article1},{}] , cat2:[{article2}] ]
中有没有类似的东西?group by categories
直到现在我已经尝试过这段代码
order_article = OrderArticle.objects.filter(order__order_number=id ,order__restaurant=restid)
samearticle=[]
for order_obj in order_article:
if : #will check if article having cat already been created
category={}
category[order_obj.article.category.name]=order_obj
samearticle.append(order_obj.article.category.name)
else:
samearticle[order_obj.article.category.name].append(order_obj)
解决方案
假设您的 Categories 模型有一个名称字段。您实际上可以遍历类别并使用相关对象引用获取所有相关文章
order_article_list = OrderArticle.objects.filter(order__order_number=id ,order__restaurant=restid)
data = {}
for order_article in order_article_list:
data[order_article.article.category.name] = order_article.article.category.articles_set.all()
推荐阅读
- r - 最大化唯一对,包括两个列表中的所有元素
- javascript - 是否有用于查找索引以拍摄基于 HTML5-JavaScript-Canvas 的视频播放器的快照的功能
- laravel - 如何为所有 Lumen 路由使用 auth:api 中间件?
- gradle - 收集父项目构建目录中的文件
- python-3.x - 比较文字字符串与 subprocess.Popen PowerShell 输出失败
- php - 使用 PHP 从查询字符串中获取倒数第二个参数
- android - 如何将 Shrinker (R8) 与 react-native 一起使用
- sql - 将列数据放入正确的目标列sql ssis
- python - 散景装饰器@without_document_lock() 是什么意思?
- java - 如何在 Spring Boot 2 项目中生成 CRUD UI?类似于 Django 的做法