我有不同的模型,所有模型都有一個名爲'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(這是來自不同模型的對象列表)進行排序呢?
得到所有結果在一個查詢中排序。其實,你所講的會讓我從不同的模型中排序列表,但我需要排序最終列表即所有單獨排序的模型對象列表的組合。 –