1
장고 필터 LinkWidget
을 통해 장고 wagtail 색인 페이지의 게시물 필터링에 django-filter을 사용하고 있습니다. 그게 정상적으로, 장고 관리 인터페이스에서 list_filter
와 마찬가지로 작동합니다.기존 필터에 OrderingFilter를 추가하고 링크로 렌더링하는 방법
이제 일부 기준에 따라 쿼리 세트를 정렬/정렬하는 기능을 공개하고 싶습니다. Django 필터는 OrderingFilter
(ref)을 제공하지만이 필터를 구현하고 LinkWidget
과 같은 렌더링을 수행하는 방법을 모르겠습니다.
내 현재의 접근 방식 :
# template.html
<ul>
{% for choice in filter_ordering.field.choices %}
<li>{{ choice }}</li>
{% endfor %}
</ul>
# filters.py
class PostFilter(django_filters.FilterSet):
categories = PatchedAllValuesFilter(
name="categories__slug",
label="Categories",
widget=LinkWidget(),
choice_name="categories__name",
)
ordering = django_filters.OrderingFilter(
widget=LinkWidget,
fields=(
('title', 'title')
)
)
class Meta:
model = PostPage
fields = ['categories']
이
# views.py
from .models import PostPage
from .filters import PostFilter
filter = PostFilter(request.GET, queryset=all_posts)
filter_ordering = PostFilter(request.GET, queryset=all_posts).filters['ordering']
context = self.get_context(request)
context['filter'] = filter
context['filter_ordering'] = filter_ordering
return render(request, self.template, context, *args, **kwargs)
...하지만이 작동하지 않습니다. 내
OrderingFilter
에서 뭔가를받을 수 있나요 :
('', '---------')
('title', <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f0d3e021cc0>)
('-title', 'Title (descending)')
... 어떻게 내 템플릿에 링크로이 렌더링하는 방법? 어떤 도움 당신은 그냥 평소와 같이 양식 필드를 렌더링 할 필요가
감사합니다, 바로 그거야! 완벽을 기하기 위해 장고 템플릿 스 니펫을 다음과 같이 작성했습니다. {{% for filter.form.ordering %} {{order_by}} {% endfor %}' – tombreit