Django Queryset : (뒤로) 관련 필드별로 주문하는 방법은 무엇입니까?
-
10-07-2019 - |
문제
이 상황에서는 댓글과 점수의 두 가지 모델이 있습니다. 관계는 점수 모델에서 다음과 같이 정의됩니다.
class Comment(models.Model):
content = TextField()
...
class Score(models.Model):
comment = models.ForeignKey(Comment)
value = models.IntegerField()
내 질문은 : 모든 의견을 반환하고 점수 값으로 주문하는 쿼리 세트를 어떻게 구성합니까?
미리 감사드립니다!
남자 이름
해결책
외국 키가 아닌 OnetoOne 필드를 사용하도록 점수 모델을 변경해야합니다. FK는 코멘트 당 점수가 두 개 이상 있음을 의미합니다.
그러나 어느 쪽이든, 쿼리는 다음과 같이 수행 할 수 있습니다.
Comment.objects.order_by('score__value')
다른 팁
나는 여전히 Django를 처음 접했지만 몇 달 동안 일하고 있습니다. 이 스 니펫이 작동 할 수 있다고 생각합니다 (오름차순으로, 사용 하강 '-value'
):
comments = [ score.comment for score in Score.objects.order_by('value').all() ]
제휴하지 않습니다 StackOverflow