【发布时间】:2020-08-12 04:56:55
【问题描述】:
Models.py
class Task(models.Model):
online = models.BooleanField(blank=False)
我想使用 django-filter 在表单中创建以下复选框:
[] 在线 [] 物理
如果表单为空或两者都打勾,请获取Task.objects.all()。如果只勾选一个,则执行Task.objects.filter('Online'=True/False)。
我尝试添加以下内容:
import django_filters
from app.models import Task
from django.db import models
class TaskFilter(django_filters.FilterSet):
online = django_filters.BooleanFilter(name='online', lookup_expr='isnull')
class Meta:
model = Task
fields = ['online']
filter_overrides = {
models.BooleanField: {
'filter_class': django_filters.BooleanFilter,
'extra': lambda f: {
'widget': forms.CheckboxInput,
},
},
}
我尝试了以下小部件:Select, RadioSelect, CheckboxInput,但似乎我得到了所有这些小部件的相同输出。我得到一个下拉列表,例如
在线:[下拉菜单从是、否、未知中选择一个值]
【问题讨论】:
标签: python django django-filter