我有不同的模型,所有模型都有一个名为'date_created'的'DateTimeField'。我需要从所有模型中选择所有对象,按照'date_created'这个字段对它们进行排序并作为列表返回。通过对象的date_created属性对不同模型的查询集对象列表进行排序
我曾尝试以下:
models.py
class FirstModel(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField()
class SecondModel(models.Model):
title = models.CharField(max_length=100)
date_created = models.DateTimeField()
views.py
def browse(request):
object_list = []
for model in get_models(get_app('myapp')):
object_list.append(model.objects.order_by('-date_created').all())
object_list = sorted(object_list, key=attrgetter('date_created'))
context = {'data': object_list}
return render(request, 'myapp/browse.html', context)
我得到的错误 '查询集' 对象有没有属性 'DATE_CREATED'。
这些模型有其他领域与此问题无关。我可以使用一个通用的基类来获取所有对象(我想),但由于某种原因我使用了抽象基类。我怀疑'连接'可以使用,但我不知道如何做到这一点。
那么,如何通过date_created属性来对这个object_list(这是来自不同模型的对象列表)进行排序呢?
得到所有结果在一个查询中排序。其实,你所讲的会让我从不同的模型中排序列表,但我需要排序最终列表即所有单独排序的模型对象列表的组合。 –