1
我開始使用Django和tastypie來與我的數據庫進行交互。tastypie過濾
因此,我有一個數據庫與一些表,我可以設置篩選,以便我可以使用像這樣的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對象,例如
loadedwith__lane__lane=8
,而使用
lane__lane=8
這樣的URL結束爲:
api/seq/mapping/?loadedwith__lane__flowcell__name=C16P5ACXX&loadedwith__lane__lane=8
現在這個返回由第一部分篩選的結果:
loadedwith__lane__flowcell__name=C16P5ACXX
但基本上忽略了第二部分
lane__lane=8
我會期望它會拋出一個錯誤,或不返回任何東西。有沒有辦法配置tastypie在這種情況下拋出錯誤? (或者由於某種原因,我不知道這是預期的行爲)?