2009-11-18 3 views
0

기본 포럼 앱을 구현 중입니다. 마지막 회신 시간으로 질문을 정렬하고 싶습니다.Django 쿼리에서 조건부 정렬을 사용하려면 어떻게해야합니까?

questions = Question.objects.filter(deleted=False).order_by("last_comment__created_at") 

그러나,이 쿼리는 더 답변 새로운 질문을 무시 : 나는 다음 줄을 가지고있다. Question 모델에서 새 필드를 만들지 않고이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변

1

질문 모델에서 last_update라는 datetimefield를 추가하십시오. 그런 다음 질문이 생성 될 때 거기에 타임 스탬프를 삽입하고 메모 저장 방법에서도 self.question.last_update를 업데이트하십시오. 그런 식으로 당신은으로 정렬 할 수 있습니다

questions = Question.objects.filter(deleted=False).order_by("-last_update") 

를이 -의 검색어에 첫번째 것 새로운 것을 의미한다.

+0

답변 해 주셔서 감사합니다. 질문에서 언급했듯이 질문 모델을 수정하지 않고이 작업을 수행하려고합니다. – Boolean

+0

내가 그 부분을 놓친 것 같아. 필드 대신 메서드를 추가 할 수 있습니까? 더 느리지 만 모든 Question 객체를 쿼리 한 다음 람다와 함께 sorted() 함수를 사용할 수 있습니다. 나는 이것에 대해 계속 생각할 것이지만 실제로는 가장 좋은 방법은 모델을 수정하는 것입니다. –

관련 문제