首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-filter和Django-tables2 CheckBoxColumn兼容性

Django-filter和Django-tables2 CheckBoxColumn兼容性
EN

Stack Overflow用户
提问于 2017-12-13 07:40:36
回答 2查看 1.9K关注 0票数 1

我希望通过Django-filter在我返回的表中有一个checkboxcolumn,然后通过checkbox选择某些行,然后对这些行执行一些操作。

这是Django-filter: django-filter.readthedocs.io/en/1.1.0这是在Django-tables2: stackoverflow.com/questions/10850316/…中使用checkboxcolumn的示例

我的问题是:我可以对通过Django-filter返回的表使用checkboxcolumn吗?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-12-20 06:09:50

完整的工作代码:

filters.py

代码语言:javascript
复制
from project_django.models import SomeModel
import django_filters

class UserFilter(django_filters.FilterSet):

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

views.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
{% 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>
票数 1
EN

Stack Overflow用户

发布于 2017-12-15 23:46:42

从django-tables2的角度来看,django-filter所做的是提供一个不同的(过滤的)查询集。django-tables2不关心谁组成了查询集,它只会迭代它,并使用查询集的模型来呈现行。

因此,无论您是否在表中添加了复选框列,或者是否使用了django-filter,django-tables2都将呈现它得到的任何查询集。

如果你想使用一些自定义过滤器的检查记录,你必须做一些手动编码,这是不支持的开箱即用。

简短的回答:可以,您可以将django-tables2与django- CheckboxColumn一起使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47783328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档