【发布时间】:2012-10-30 02:18:07
【问题描述】:
我开始使用 Django 和 sweetpie 来与我的数据库进行交互。
所以我有一个包含许多表的数据库,我可以设置过滤,这样我就可以使用这样的 URL,使用相关 Django 对象的链来过滤我的结果。
api/seq/mapping/?loadedwith__lane__flowcell__name=C16P5ACXX&loadedwith__lane__lane=8
映射资源设置如下:
class MappingResource(ModelResource):
loadedwith = fields.ToOneField('sequencing.api.LoadedWithResource' , 'loadedwith' )
class Meta:
queryset = Mapping.objects.all()
resource_name = 'mapping'
allowed_methods = ['get' , 'post' , 'put' , 'patch' , 'delete']
authorization = Authorization()
serializer = PrettyJSONSerializer()
filtering = {
'loadedwith': ALL_WITH_RELATIONS,
'reference_filename' : ALL
}
这一切都很好,正如我所期望的那样。
现在,当我弄乱了 URL 时,我发现了一个问题。 如果我错过了链上加载的对象之一,例如
loadedwith__lane__lane=8
改为使用
lane__lane=8
所以网址最终为:
api/seq/mapping/?loadedwith__lane__flowcell__name=C16P5ACXX&loadedwith__lane__lane=8
现在返回由第一部分过滤的结果:
loadedwith__lane__flowcell__name=C16P5ACXX
但基本上忽略了第二部分
lane__lane=8
我原以为它会抛出错误,或者不返回任何东西。在这种情况下有没有办法配置tastepie来抛出错误? (或者这是出于某种我不知道的原因的预期行为)?
【问题讨论】: