【发布时间】:2020-11-02 17:35:26
【问题描述】:
我正在寻找一种方法来过滤来自两个模型的两个输入(name 和 place) (摄影师和地点);但是,MultipleChoiceFilter 似乎对我不起作用,因为我需要添加更多复杂逻辑,这些逻辑在我的自定义过滤器中执行,如下所示。
from django.db.models import Q
from django_filters import rest_framework as filters
class SearchResultFilter(filters.FilterSet):
name = filters.CharFilter('Photographer')
place = filters.CharFilter(method='location_filter', distinct=True)
class Meta:
model = models.Photographer
fields = ('name')
def location_filter(self, queryset, name, value):
"""My complex logic"""
.
.
.
model = models.Location.filter(Q(location__icontains=value))
return model
问题是“有没有办法可以将 name 输入字段放在我的 location_filter 中,以便我可以过滤两个输入(name 和 place)在这个函数中并从这里返回一个想要的 querySet”。
我尝试在 location_filter 中使用 self.name;但是,产生了错误日志。我猜这里的“名称”不是类变量
【问题讨论】:
标签: django django-rest-framework django-filter