我的过滤器如下所示:
class CustomUserFilter(django_filters.FilterSet):
has_reviews_in_area = HasReviewsInArea(name='area__id')
has_reviews_in_venue = HasReviewsInVenue(name='venue__id')
class Meta:
model = CustomUser
fields = ['has_reviews_in_area', 'has_reviews_in_venue', 'access_level',]
order_by = ['id', '-id', 'average_rating']
问题是average_rating是在我的序列化程序中创建的动态字段,如下所示:
average_rating = serializers.SerializerMethodField(source='average_rating')
这就是我收到错误的原因:
FieldError at /app/users/
Cannot resolve keyword u'average_rating' into field.
无论如何,我可以通过我的序列化器字段告诉django-filter进行过滤吗? 我正在使用djangorestframework 3.2.4和django 1.8.4。 (使用ModelViewsets,ModelSerializers和FilterSets)
此外,我无法在我的模型上将average_rating设为属性,因为它是根据我的过滤器动态计算的(例如查询参数中场地的平均评分)