我希望通过Django-filter在我返回的表中有一个checkboxcolumn,然后通过checkbox选择某些行,然后对这些行执行一些操作。
这是Django-filter: django-filter.readthedocs.io/en/1.1.0这是在Django-tables2: stackoverflow.com/questions/10850316/…中使用checkboxcolumn的示例
我的问题是:我可以对通过Django-filter返回的表使用checkboxcolumn吗?
谢谢
发布于 2017-12-20 06:09:50
完整的工作代码:
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 = SomeModelindex.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>发布于 2017-12-15 23:46:42
从django-tables2的角度来看,django-filter所做的是提供一个不同的(过滤的)查询集。django-tables2不关心谁组成了查询集,它只会迭代它,并使用查询集的模型来呈现行。
因此,无论您是否在表中添加了复选框列,或者是否使用了django-filter,django-tables2都将呈现它得到的任何查询集。
如果你想使用一些自定义过滤器的检查记录,你必须做一些手动编码,这是不支持的开箱即用。
简短的回答:可以,您可以将django-tables2与django- CheckboxColumn一起使用。
https://stackoverflow.com/questions/47783328
复制相似问题