4
내 사이트에는 두 개의 앱으로 구성되어있는 세 개의 모델이 있습니다.이 모델에는 모두 timestamp
필드가 있습니다.이 필드는 사이트 피드의 모양 순서를 정의합니다. 모든 모델에 대한 피드를 만들고 timestamp
필드로 단일 쿼리를 정렬하는 대신이 모든 객체를 포함하는 단일 피드를 생성하고 각 템플릿을 해당 템플릿으로 렌더링하며 모두 timestamp
속성으로 정렬 된 피드를 생성하려고합니다.다른 모델에서 단일 피드를 생성하는 가장 좋은 방법은 무엇입니까?
내 첫 번째 시도는 모든 개체를 나열하고 하나의 목록에 결합 파이썬에서 그들을 분류된다 :
class SiteFeed(Feed):
...
def items(self):
objects = list(model1.objects.all()) + list(model2.objects.all()) + list(model3.objects.all())
objects.sort(key=lamda obj: obj.timestamp)
return = objects
난 당신이 대답을 ilustrate하기위한 예제 코드를 제공하시기 바랍니다 수 반복자에 익숙하지 않아요 : 예를 들어
? 반복기를 만드는 법을 알 수는 없지만 일반적인 생각을 이해한다고 생각합니다. –
대답을 업데이트했습니다 – akonsu
간단한 반복기입니다. 문제는 여전히 남아 있습니다. 공통된 속성 인'타임 스탬프 (timestamp) '로 정렬 된 다른 모델의 모든 객체가 필요합니다. 이 코드에서는 'model1' 객체 만 반환됩니다. –