django - django order_by 的行为
问题描述
我有 3 个模型:
class Parent(models.Model):
name = models.CharField()
class StudentDriver(models.Model):
parent = models.ForeignKey(Parent, on_delete=models.CASCADE)
class Car(models.Model):
student_driver = models.ForeignKey(StudentDriver, on_delete=models.CASCADE)
为什么,如果我执行以下操作,order_by
则不兑现(我的 qs 不会由 student_driver.parent_id 订购)?有没有办法订购它?我需要它来进行分组。
for car in Car.objects.order_by('student_driver__parent'):
print(car.student_driver.parent)
如果我做:
for car in Car.objects.order_by('student_driver'):
print(car.student_driver)
它没有问题(qs 由 student_driver_id 排序)。似乎是 ForeignKey 链接,但我无法弄清楚。
解决方案
我认为它有效:
for car in Car.objects.all().order_by('student_driver__parent__id'):
print(car.student_driver.parent.id)
推荐阅读
- python - 标签中的href在内部不起作用
- DJANGO
- powerbi - 如何将动态参数从 powerbi 传递到 sql 存储过程?
- javascript - 如何防止 JavaScript 计时器在达到零和页面重新加载后继续倒计时
- javascript - 正则表达式查找内部带有特定字符的网址(js)
- openiddict - 外部资源服务器
- ruby-on-rails - 命令 'db:setup' 无法识别”
- laravel-livewire - 我们可以在单击某个按钮时加载 Livewire 组件吗?
- android - 使用应用程序类 android 实现插页式广告
- command-line - 如何使用 mypy 以及 bandit 和其他选项安装探矿者
- http - 第三方cookie认证