如何更改视图中变量的值?

时间:2017-03-08 08:47:32

标签: python django

我的查询集目前是我视图中posts的值。但是,当用户导航到Post.objects.all().filter(category=category).order_by('-date')网址时,我想将我的查询集更改为new。这是我的代码:

网址

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>

在浏览posts网址时是否可以更改new的值?

1 个答案:

答案 0 :(得分: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)