2015-01-19 3 views
0

나는 Alex에 의해 장고 필터를 사용하고 있으며,보기에서 필터 양식에서 일부 필드를 제거하고 싶습니다.장고 필터 숨기기/필터 필드 제거

나는 이런 식으로 뭔가에 대해 생각하고 :

class ProductTableView(SingleTableView): 
    filter_class = ProductFilter 


    def get_table_data(self, **kwargs): 
    queryset =super(ProductTableView, self).get_table_data() 
    self.filter = self.filter_class(self.request.GET, queryset=queryset) 
    return self.filter 

    def get_context_data(self, **kwargs): 
    context = super(ProductTableView, self).get_context_data(**kwargs) 

    for name, field in self.filter.filters.iteritems():  
     if somethink: 
      if name == "price": 
       field.visible = False 

    context['filter'] = self.filter 
    return context 

내가 아는 : SingleTableView 다음

import django_filters 

class ProductFilter(django_filters.FilterSet): 
    class Meta: 
     model = Product 
     fields = ['price', 'release_date'] 

과 :

필터 : 여기

for name, field in self.filter.filters.iteritems():  
    if somethink: 
     if name == "price": 
      field.visible = False 

내 코드입니다 내가 할 수있는 일 그것은 템플릿에 있지만, 이것은 나를 위해 더 나은 옵션입니다. 사용자 역할을 기반으로 변경 필터가 필요합니다.

답변

0

코드를 모두 보지 않고 Meta 클래스를 통해 필터링 할 입력란을 지정하려고 했습니까? 보기에 그런

import django_filters 

class ProductFilter(django_filters.FilterSet): 
    class Meta: 
     model = Product 
     fields = ['price', 'release_date'] 

:

def product_list(request): 
    f = ProductFilter(request.GET, queryset=Product.objects.all()) 
    return render_to_response('my_app/template.html', {'filter': f}) 

이 만 pricerelease_date 필드 수는에 필터링 할/볼.

relevant documentation에 대한 링크.

+0

질문이 업데이트되었습니다. – matopy