2017-05-10 6 views
0

Meta의 기본 주문으로 영구 주문을 적용하고 싶지 않습니다. 오히려 런타임에 그것을 업데이 트하고 템플릿에서 액세스하는 것보다. 다음보다 더 우아한 방법이 있습니까?django에서 런타임에 관련 모델의 순서를 업데이트하십시오.

def get_object(self, queryset=None): 
    question = super().get_object(queryset) 
    question.choice_set.ordered = question.choice_set.order_by('-votes') 
    return question 

기본 개체가 변경된 경우 업데이트되지 않으므로 업데이트되지 않습니다.

+0

당신이 쿼리하는 곳에서 주문을 할 수 있습니다. – badiya

+0

모델의 최소 예를 제공해 주시겠습니까? "런타임에 업데이트"하는 것이 무엇을 의미하는지 더 잘 설명하십시오. – cezar

답변

0

order_by QuerySet 메서드를 사용하지 않는 이유는 무엇입니까? 당신은 몇 가지 관련 모델을 가진 MODELL Question을 가지고 가정

,의는 Answer를 호출하자

class Answer(models.Model): 
    content = models.CharField() 
    votes = models.IntegerField() 

class Question(models.Model): 
    content = models.CharField() 
    answer = models.ForeignKey(Answer, related_name="questions") 

그런 다음이처럼 검색 결과를 정렬 할 수 있습니다

q = Question.objects.order_by('-answer__votes') 

이 완료 모든입니다 장고 도구와 함께, 아무것도 추가로 만들 필요가 없습니다.

+0

죄송합니다. 질문이 명확하지 않았습니다. 나는 그것을 새롭게했다. – R3turnz