0
나는 장고 모델장고 order_by의 외래 키 세트 모델
class Post(models.Model):
title = models.CharField(max_length=240)
class Comment(models.Model):
post = models.ForeignKey(Post)
date = models.DateTimeField(auto_now_add=True)
내가 코멘트 검색어 세트를 필요로 후 날짜, 우편으로 첫번째 순서를 다음했다. 게시물은 최신 코멘트로 주문해야합니다. 내가 검색어 세트의 order_by에서 모델 방법을 사용할 수 있다면
,이 같은 것 :
class Post(models.Model):
title = models.CharField(max_length=240)
def get_last_comment_date(self):
return self.comment_set.order_by('-date')[0].date
그리고 순서를, 내가 필요하다고, 수 :
Comment.objects.all().order_by('post__get_last_comment_date', '-date')
그러나 불행하게도, 메소드 order_by는 허용되지 않습니다.
도와주세요. 주문할 수 있습니까?
감사합니다! Post 모델에 'last_comment_date'필드를 추가하고 매번 특정 게시물에 대한 새 코멘트가 발생할 때마다 업데이트해야합니다. 그러나 당신의 해결책은 훨씬 낫습니다! – stalk
이전 댓글에 너무 빠르다. 이 솔루션은 모든 새로운 주석에 필드를 업데이트합니다. 그것은 작동합니다 (코드의 일부 수정, 즉 '자체'에서 '인스턴스'로 이름 바꾸기).하지만 새로운 코멘트가있을 때마다 데이터베이스에 대한 추가로드가 발생합니까? – stalk
예, 댓글 게시시 발생하는 2 건의 질문 (예 : 3 건의 경우)을 처리하고 있습니다. 나에게 공평한 것처럼 들린다. – jpic