class DeviceResource(ModelResource):
class Meta :
queryset = Device.objects.all()
resource_name='device'
class UpdateResource(ModelResource):
device = fields.ForeignKey(DeviceResource, attribute='device',full=True, null=True)
class Meta :
queryset = Update.objects.all()
resource_name = 'update'
filtering = {'imei' : ALL }
更新模型有一个字段' imei',它映射到' imei'在具有ForeignKey的设备中
我以为会有一些属性to_field,我可以写
device = fields.ForeignKey(DeviceResource, to_field='imei'attribute='device',full=True, null=True)
但在tastypie中没有这样的东西
以下是我的设备和更新模型
答案 0 :(得分:1)
我认为tastypie不支持这个,所以如果你可以改变模型使用隐式主键,我会这样做。
也就是说,属性arg引用了访问相关实例所需的Django模型属性,因此如果您还没有,请尝试attribute='imei'
。
如果您需要通过IMEI引用DeviceResources并且不知道他们的.pk,请参阅tastypie docs以获取有关非pk查找的更多帮助。
如果您只是需要过滤GET,请尝试以下方法:
filtering = {
device: "ALL_WITH_RELATIONS"
}
然后你的UpdateResource过滤器调用类似于
/api/v1/update/?device__imei=asdf123...