【发布时间】:2021-07-14 22:39:57
【问题描述】:
想象一下,我有以下 filters.py:
class ActionFilter(django_filters.FilterSet):
class Meta:
model = Action
fields = "__all__"
现在,我想在我的模型中启用对 Charfield 字段的部分搜索。如何启用?
编辑
class ActionFilter(django_filters.FilterSet):
name = django_filters.CharFilter(field_name = 'name', lookup_expr='icontains')
description = django_filters.CharFilter(field_name = 'description', lookup_expr='icontains')
class Meta:
model = Action
fields = "__all__"
HTML:
<div class="card-body">
{% load django_tables2 %}
{% render_table table %}
{% if table.filter %}
<form action="" method="get" class="form form-inline">
{% bootstrap_form table.filter.form layout='inline' %}
{% bootstrap_button 'filter' %}
</form>
{% endif %}
</div>
</div>
</div>
tables.py 将 django_tables2 导入为表
from .models import Action, ControlTest
from .filters import ActionFilter
class actionTable(tables.Table):
action_report = tables.Column(accessor='report.type')
title_report = tables.Column(accessor='report.name')
date_report = tables.Column(accessor='report.date')
business_unit = tables.Column(accessor='bu.name')
wallet_holder = tables.Column(accessor='control.bu')
owner = tables.Column(accessor='owner')
title_finding = tables.Column(accessor='actionr')
description_finding = tables.Column(accessor='actionr.description')
class Meta:
Action.filter = ActionFilter
model = Action
fields = ('id', 'action_report', 'title_report', 'date_report', 'due_date','priority','business_unit', 'wallet_holder', 'owner', 'delegate', 'reviewer1', 'reviewer2', 'title_finding', 'description_finding','Action_Comments',
'name', 'description', 'ControlID', 'ReportID', 'BUid', 'UserID_as_ActionOwner', 'UserID_as_ActionOwner', 'UserID_as_Actionreviewer', 'Priority',
'status', 'Action_History', 'Review_Comments', 'documentation', 'referencenumber')
【问题讨论】: