Django tastypie过滤器布尔字段

Django tastypie过滤器布尔字段,django,boolean,filtering,tastypie,Django,Boolean,Filtering,Tastypie,我在models.py上过课: class Companies(models.Model): id = models.AutoField(unique=True, primary_key=True, null=False, blank=False) is_active = models.BooleanField(default=1, editable=False) 在HTML模板中,具有以下组: <fieldset> <legend>Status&

我在models.py上过课:

class Companies(models.Model):
    id = models.AutoField(unique=True, primary_key=True, null=False, blank=False)
    is_active = models.BooleanField(default=1, editable=False)
在HTML模板中,具有以下组:

<fieldset>
   <legend>Status</legend>
    <input type="radio" name="is_active" value="">All</label>
    <input type="radio" name="is_active" value="True" checked="1">Active</label>
    <input type="radio" name="is_active" value="False">Not Active</label>
   </fieldset>

地位
全部的
活跃的
不活跃
我想使用jquery序列化()radiogroup并发送到tastypie API,以从模型中获取过滤数据:

来自查询的URL将如下所示:

http://localhost:8000/api/view/company/list/?is_active=

结果将仅显示is_活动字段中具有假值的行

如果我使用?is_active=1,则结果仅为真

如何从表中同时获取真行和假行


我可以更改输入中的“name”attr,但所有输入中的name必须相同才能保持分组。

如果您通过
?在Django端,请求将在POST dictionary中具有“is\u active”:

>>> 'is_active' in request.POST`
True
问题在于内容为字符串,此处为空:

>>> request.POST['is_active']
'' # Or None I am not quite sure.
根据Python语义:

>>> bool(None)
False
>>> bool(False)
False
>>> bool(0)
False
>>> bool('')
False
所有负值为:
[]
()
{}
set()
0
'

如果此键为空或不调用该值为空的API,则必须重写
build\u filters
以删除此键

def build_filters(self, filters=None):
    if filters is None:
        filters = {}

    if "is_active" in filters and filters["is_active"] == '': # or == None you have to check
        del filters['is_active']

    return super(MyResource, self).build_filters(filters)