Я пытаюсь отфильтровать сериализованное значение, которого нет в моей модели, но я не могу разобраться с этим.
Вот мой model.py :
class Post(models.Model):
post_id_number=models.AutoField(primary_key=True)
variable_1 = models.CharField(max_length=50)
variable_2 = models.CharField(max_length=50)
variable_3 = models.CharField(max_length=50)
Вот мой Views.py :
class PostViewSet(viewsets.ModelViewSet):
serializer_class = PostSerializers
queryset = Post.objects.all()
filterset_class = PostFilter
Вот мой serializers.py :
class PostSerializers(serializers.ModelSerializer):
variable_not_in_the_model = serializers.SerializerMethodField()
class Meta:
model = Post
fields = ('post_id_number',
'variable_1',
'variable_2',
'variable_3',
'variable_not_in_the_model',
)
def get_variable_not_in_the_model(self, instance):
return instance.variable_1 + ' ' + instance.variable_2 + ' ' + instance.variable_3
Вот мой фактический filters.py :
from .models import Post
import django_filters
class PostFilter(django_filters.FilterSet):
class Meta:
model = Post
fields = {
'variable_1': ['icontains'],
'variable_2': ['icontains'],
'variable_3': ['icontains']
}
Вот то, что я хотел бы, чтобы мой filters.py был похож, но он не работает :
from .models import Post
import django_filters
class PostFilter(django_filters.FilterSet):
class Meta:
model = Post
fields = {
'variable_not_in_the_model': ['icontains']
}
Есть ли способ фильтрации по сериализованным переменным, а не по переменным модели?
Большое спасибо за помощь!