2017-03-08 31 views
0

Mein Queryset ist derzeit der Wert posts meiner Ansicht nach. Ich möchte jedoch mein Abfrage-Set zu Post.objects.all().filter(category=category).order_by('-date') ändern, wenn der Benutzer zu der new-URL navigiert. Hier ist mein Code:Wie ändere ich den Wert einer Variablen in einer Ansicht?

Urls

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

Ansichten

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

Vorlage

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

Ist es möglich, den Wert von posts zu ändern, wenn durch die new URL gehen?

+0

Dies macht keinen Sinn. Sie können nicht zwei identische URLs haben. –

+0

Mein Fehler, behoben. – Zorgan

Antwort

4

Ich verstehe nicht wirklich, was Sie versuchen zu tun. Aber Sie könnten einen Parameter von der URLs.py an die Ansicht übergeben:

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

Dies scheint die richtige Methode zu verwenden, aber ich habe es versucht und meine 'neue' URL gibt eine leere Abfrage zurück. Irgendeine Idee warum? Ich habe eine for-Schleife für 'posts' verwendet und es gibt nichts in/new / – Zorgan

Verwandte Themen