2017-03-08 1 views
0

내 쿼리 세트는 현재 내보기에 posts입니다. 그러나 사용자가 new url로 이동할 때 내 쿼리 세트를 Post.objects.all().filter(category=category).order_by('-date')으로 변경하고 싶습니다.보기에서 변수 값을 변경하는 방법은 무엇입니까?

URL을

url(r'^$', boxes_view, name='home'), 
url(r'^new/$', boxes_view, name='new'), 

전망

def boxes_view(request): 
    ... 
    posts = Post.objects.all().filter(category=category).annotate(score_diff=F('score__upvotes') - F('score__downvotes')).order_by('-score_diff') 

템플릿

... 
<button id="sort_new"><a href="{% url 'new' %}">New</a></button> 

new URL을 통해 갈 때 posts의 값을 변경할 수 있습니다 : 여기 내 코드는?

+0

이것은 의미가 없습니다. 두 개의 동일한 URL을 가질 수 없습니다. –

+0

내 실수. – Zorgan

답변

4

나는 당신이하려는 것을 정말로 이해하지 못합니다. 그러나 urls.py에서 뷰에 매개 변수를 전달할 수 있습니다.

url(r'^$', boxes_view, {'order': '-score_diff'}, name='home'), 
url(r'^new/$', boxes_view, {'order': '-date'}, name='new'), 

def boxes_view(request, order): 
    ... 
    posts = Post.objects.all()...order_by(order) 
+0

이 방법을 사용하는 것이 옳은 방법 인 것 같지만 시도해 보았고 새 URL에서 빈 쿼리 세트를 반환하고 있습니다. 왜 그런가? 나는'posts'에 for 루프를 사용했고/new /에 아무것도 반환하지 않았습니다. – Zorgan

관련 문제