什么错误?如果没有损坏,请不要修复它。 ;)
您可以:
- 选择所有任务,而无需order_item和标题排序。
- 使用order_item选择所有任务并按order_item__due_date对其进行排序。
- 加入两个查询集。
像这样:
tasks = Tasks.objects.all()
objects_by_title = tasks.objects.filter(order_item__isnull=True).order_by('title')
objects_by_due_date = tasks.objects.filter(order_item__isnull=False).order_by('order_item__due_date')
queryset = objects_by_title | objects_by_due_date
UPDATE:
您的代码将正常工作,即使order_item为空。
tasks = tasks.order_by('order_item__due_date', 'title__name')
访问是别的东西。这将打印due_dates,直到它到达没有order_item的obj,然后会引发AttributeError:'NoneType'对象没有属性'due_date'。
for obj in tasks:
print obj.order_item.due_date
什么类型的数据库?甲骨文?如果是这样,请阅读NVL()或NVL2()。 order by子句可能看起来像这样ORDER BY NVL(order_item,order_item__due_date) –
你试过吗?什么是错误?我只是好奇。 – jproffitt