2017-11-18 9 views
1

Django-filter 클래스 기반보기 FilterView을 사용하려고하는데 템플릿에 필터를 렌더링하는 데 문제가 있습니다. 그것은 필터가 contex에없는 것 같습니다.클래스 기반보기 - get 함수를 호출하지 않습니다.

DOCS : https://django-filter.readthedocs.io/en/master/guide/usage.html#generic-view-configuration

편집 : 그것은 뷰의 get(self...) 함수가 호출되고 있지 않습니다 것으로 보인다. 나는 get 메소드에서 breakpoint를 설정했고 거기에서 멈추지 않았다.

EDIT2 : 정말 이상합니다. 디버거도 줄에 멈추지 않는다 : class UserFilterView(...)

filters.py

class UserProfileFilter(django_filters.FilterSet): 
    class Meta: 
     model = UserProfile 
     fields = ['budget','looking_for','user'] 

views.py

class UserFilterView(FilterView): 
    filterset_class = UserProfileFilter 
    template_name = 'frontend/userprofile_filter.html' 

userprofile_filter.html

{% extends "frontend/base.html" %} 
{% block content %} 
    <div class="filter"> 
     {{ filter.form.as_p }} 
    </div> 
    <hr> 
    <div class="results"> 
    </div> 
{% endblock %} 

그러나 브라우저에서 0, 나는 참조 :

... 
<div class="filter"> 

</div> 
... 

urls.py

url('^search/$',views.UserFilterView.as_view(), name="user_filter") 

문제입니다 알아낼 수 없습니다. 아이디어가 있습니까?

+0

전체 views.py를 게시 할 수 있습니까? 가져 오기 및 가져 오기 방법 포함 – Sam

답변

1

get 메서드가 다른 곳에서 정의 되었기 때문에 CBV 상속에 문제가있는 것처럼 들립니다. 우리는 아마 더 많은 코드와 모든 것을 정확한 버전으로 디버깅해야 할 것입니다. https://django-filter.readthedocs.io/en/master/guide/usage.html#the-view

CBVs는 믿을 수 없을만큼 간단한 일을 복용하고 디버깅 시간이 소요 무언가로 선회를 위해 중대하다 -

그러나, 나는 강력하게 여기보기 3 개 라인을 작성하여이 모든 것을 회피하는 것이 좋습니다.