2017-12-12 10 views
0

반환 된 테이블에 장고 필터를 통해 checkboxcolumn을 갖고 확인란을 통해 특정 행을 선택한 다음이 행을 사용하여 무언가를하고 싶습니다.장고 필터와 Django-tables2 CheckBoxColumn 호환성

이 장고 필터이다 :이 장고 테이블 2에서 사용되고 checkboxcolumn의 일례이다 django-filter.readthedocs.io/en/1.1.0 :

을 stackoverflow.com/questions/10850316/... 내 질문 : 장고 필터를 통해 반환 된 테이블에 대해 checkboxcolumn을 사용할 수 있습니까?

감사

다른 (필터링)의 검색어를 공급 장고 테이블 2의 관점에서 무엇 장고 필터
+0

예를 들어, 링크를 사용하고, 예상되는 결과를 지정하고, 오류를 지정하고, 텍스트가 아닌 다른 것을 입력하십시오. –

+0

이미 예상 된 결과를 지정했습니다. 제 질문에서 세 번째 문장입니다. 내 장고 필터 코드가 정말로 필요한가요? – FortranMan

+0

내가 말하고자하는 것은 모두가 코드에 대한 질문을 기대한다는 것입니다. 일반 텍스트가 긴 질문은 까다롭게 보입니다. 어쩌면 다른 곳에서 연구하고 실제 스 니펫이 관련되어있을 때 SO로 옮길 수 있습니다. –

답변

0

. django-tables2는 queryset을 작성한 사람을 신경 쓰지 않고, 그냥 반복하여 모델을 사용하는 행을 쿼리 세트 형태로 렌더링합니다.

테이블에 대한 확인란 열 또는 django-filter를 사용하지 않을 경우 django-tables2는 가져 오는 쿼리 세트를 렌더링합니다.

일부 맞춤 필터에 대해 확인 된 레코드를 사용하려면 수동 코딩을해야하며, 기본적으로 지원되지 않습니다.

답 : 예, django-filter와 함께 CheckboxColumn과 함께 django-tables2를 사용할 수 있습니다.

+0

감사합니다. 두 번째 코멘트를 올렸지 만 어디에 넣어야할지 모르겠습니다. 이것은 내가 여기있는 모든 첫 번째 게시물입니다. – FortranMan

0

전체 작업 코드 :

filters.py :

from project_django.models import SomeModel 
import django_filters 

class UserFilter(django_filters.FilterSet): 

    class Meta: 
     model = SomeModel 
     fields = ['jobnumber', ] 

views.py :

def custom_table(request): 

    user_list = SomeModel.objects.all() 

    data = request.GET.copy() 

    if len(data) == 0: 
     data['jobnumber'] = 0 

    user_filter = UserFilter(data, queryset=user_list) 

    table1 = JobTable(user_filter.qs) 

    # WORKING: custom table with checkbox 
    RequestConfig(request).configure(table1) 

    # WORKING: custom table with checkbox 
    return render(request, 'index.html', {'table1': table1, 'filter': user_filter}) 

tables.py :

import django_tables2 as tables 
from .models import SomeModel 


class JobTable(tables.Table): 

    selection = tables.CheckBoxColumn(accessor='pk') 
    #jobnumber = tables.Column() 
    class Meta: 
     model = SomeModel 

index.html :

{% load widget_tweaks %} 
{% block content %} 

    <form method="get"> 
    <div class="well"> 
     <h4 style="margin-top: 0">Filter</h4> 
     <div class="row"> 
     <div class="form-group col-sm-4 col-md-3"> 
     {{ filter.form.as_p }} 
     <button type="submit">Search</button> 
     </div> 
     </div> 
     </div> 
    </div> 
    </form> 

    <form action="roll.html" method="post"> 
     {% render_table table1 %} 
     <input type="submit"> 

    </form> 
+0

당신의 예제에서 당신은'render_table'에'filter.qs'를 넘깁니다. 이것은 장고 모델에서 생성 된 테이블을 얻는다는 것을 의미합니다. 사용자 지정 열을 테이블에 추가하려면 사용자 지정 테이블 개체를 만들어야합니다.이것은 [튜토리얼] (http://django-tables2.readthedocs.io/en/latest/pages/tutorial.html)에서 설명합니다. 테이블 인스턴스가 컨텍스트로 이동 한 다음'{% render_table %} '로 전달되어야합니다. – Jieter

+0

내 "사용자 정의 테이블 객체"가 전체 테이블입니까, 아니면 하나의 열만 제 모델에 추가됩니까? 완전한 테이블이라면 필자는 필터링 된 쿼리 세트를이 테이블 개체에 전달해야합니다. 그렇습니까? django-tables2 튜토리얼을 살펴 봤지만 이것은 간단한 모델 이외의 다른 것을 전달하는 지표가없는 아주 기본적인 예입니다. – FortranMan

+0

이제 사용자 정의 테이블에 확인란 열이 표시되지만 전체 모델이 아닌 테이블에 장고 - 필터 데이터를 가져 오려고합니다. 나는 그것이 작동한다면 전체 작업 코드를 게시 할 것입니다. 나는'tables.py' 또는'views'을 편집할지 모르지만 저는 노력하고 있습니다. – FortranMan