Django tastypie过滤器布尔字段
我在models.py上过课: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&
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)