API に対して要求が行われたときに正しいデータを返すために、obj_get_list 関数をオーバーライドする必要がある Tastypie リソース (TaskImagesResource) があります。これを行うには、別のリソース (TaskImagesResource と OneToOne の関係にある TaskResource) のプロパティにアクセスする必要があります。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)
しかし、task_resource.id は CharField オブジェクトであり、データ自体ではないため、「int() 引数は 'CharField' ではなく、文字列または数値である必要があります」というエラーが表示されます。実際のフィールド データにアクセスするにはどうすればよいですか?