0

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' ではなく、文字列または数値である必要があります」というエラーが表示されます。実際のフィールド データにアクセスするにはどうすればよいですか?

4

1 に答える 1

0

試す:

task = Task.objects.get(id=int(task_resource.id))
于 2012-07-26T02:02:37.687 に答える