我在这样的模板中有以不同方式排序的项目列表。
views.py
class IndexView(generic.ListView):
template_name = 'items/index.html'
context_object_name = 'item_list'
def get_queryset(self):
return Item.objects.all()
的index.html
<a href="http://127.0.0.1:8000/items/cat/release_date">Latest</a>
{% for movie in movie_list|dictsortreversed:"release_date" %}
{% endfor %}
<a href="http://127.0.0.1:8000/items/cat/rating">Popular</a>
{% for movie in movie_list|dictsortreversed:"rating" %}
{% endfor %}
<a href="http://127.0.0.1:8000/items/cat/pub_date">Recent</a>
{% for movie in movie_list|dictsortreversed:"pub_date" %}
{% endfor %}
现在,正如您所看到的,我给出了每个类别的链接(release_date,rating,pub_date),因为我想在根据类别排序的模板中访问它们。
这就是我所做的并且不起作用。如何解决这个问题?
urls.py
url(r'^cat/(?P<cat>\D+)', views.CatView.as_view(), name='cat'),
view.py
class CatView(generic.ListView):
template_name = 'items/cat.html'
context_object_name = 'item_list'
def get_queryset(self):
return Item.objects.all()
def get_context_data(self, *args, **kwargs):
context = super(CatView, self).get_context_data(*args, **kwargs)
context['cat'] = self.kwargs.get('cat')
return context
cat.html
{% for item in item_list|dictsortreversed:cat %}
1)我不想让所有类型的字符串都通过url。如何只传递选定的字符串,在这种情况下(rating,release_date,pub_date)。
2)有人可以提出一种优雅的方法吗? PS:编程新手。