问题
From looking around at what others are doing this should be working, but I an error saying:
Lookups are not allowed more than one level deep on the 'photos' field.
Here is the code that I have. I've tried a few slight variations with how I set things up but I've had no luck.
class CollectionResource(ModelResource):
photos = fields.ToManyField('photoproject.apps.kit.api.PhotoResource', 'photo_set', null=True, full=True)
class Meta:
authorization = Authorization()
resource_name = 'collection'
queryset = Collection.objects.all()
filtering = {
'name': ['exact'],
'photos': ALL
}
class PhotoResource(ModelResource):
collection = fields.ToOneField(CollectionResource, 'collection')
class Meta:
authorization = Authorization()
resource_name = 'photo'
queryset = Photo.objects.all()
filtering = {
'id': ALL_WITH_RELATIONS
}
And what I'm trying to query is:
/api/v1/collection/?photos__id=2
回答1:
Per this StackOverflow answer, try changing ALL to ALL_WITH_RELATIONS for "photos":
class CollectionResource(ModelResource):
photos = fields.ToManyField('photoproject.apps.kit.api.PhotoResource', 'photo_set', null=True, full=True)
class Meta:
authorization = Authorization()
resource_name = 'collection'
queryset = Collection.objects.all()
filtering = {
'name': ['exact'],
'photos': ALL_WITH_RELATIONS
}
来源:https://stackoverflow.com/questions/22084821/filtering-error-lookups-are-not-allowed-more-than-one-level-deep