我有一个 Tastypie 资源 (TaskImagesResource),当向 API 发出请求时,它需要覆盖 obj_get_list 函数以返回正确的数据。我需要访问另一个资源(TaskResource,它与 TaskImagesResource 具有 OneToOne 关系)的属性才能执行此操作。我可以使用 get_related_resource() 获取 Task 资源的实例,但我不知道如何从对象中获取数据。这是我现在的代码:
class TaskResource(ModelResource):
target = fields.OneToOneField(TargetResource, 'target', full=True)
activity = fields.ForeignKey(ActivityResource, 'activity')
time = fields.OneToOneField(TaskEventTimeResource, 'time', full=True)
class Meta:
queryset = Task.objects.all()
filtering = {
'id' : ALL,
'activity' : ALL_WITH_RELATIONS,
}
class TaskImagesResource(Resource):
task = fields.ForeignKey(TaskResource, 'task', full=True)
camera = fields.CharField()
def obj_get_list(self, request, **kwargs):
task_resource = self.task.get_related_resource(self)
task = Task.objects.get(id=task_resource.id)
image_list = task.sorted_imageinstances(self.camera)
但我收到错误“int() 参数必须是字符串或数字,而不是 'CharField'”,因为 task_resource.id 是 CharField 对象而不是数据本身。如何访问实际的现场数据?