Filtering Error: Lookups are not allowed more than one level deep

♀尐吖头ヾ 提交于 2019-12-05 07:02:03

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!