0
我有一個Tastypie資源(TaskImagesResource)需要重寫obj_get_list函數,以便在向API發出請求時返回正確的數據。我需要訪問另一個資源的屬性(TaskResource,它與TaskImagesResource具有OneToOne關係)才能執行此操作。我可以使用get_related_resource()獲取任務資源的實例,但我不知道如何從對象中獲取數據。這裏是我的代碼現在:Tastypie - 通過ForeignKey字段訪問字段數據
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對象,而不是數據本身。我怎樣才能訪問實際的現場數據?
的CharField不能被強制轉換爲整數。 – Matt 2012-07-26 14:57:45
然後看起來'task_resource = self.task.get_related_resource(self)'有問題。嘗試打印/記錄'task_resource'的輸出以進行調試。 – nknj 2012-07-27 00:02:23