У меня есть сериализатор, который имеет значения от OneToMany
и ManyToOne
Relation.
class A(models.Model):
abc = AnyField()
bcd = AnfField()
class B(models.Model):
xyz = ForeignKey(A)
pqr = CharField()
class C(models.Model):
lmn = ForeignKey(A)
def = CharField()
Мои сериализаторы:
class BSerializer(ModelSerializer):
class Meta:
fields = '__all__'
class CSerializer(ModelSerializer):
class Meta:
fields = '__all__'
class ASerializer(ModelSerializer):
B = SerializerMethodField()
C = SerializerMethodField()
class Meta:
fields = ('id', 'abc', 'bcd', 'B', 'C')
def get_B(self, obj):
return BSerializer(queryset=obj.b_set.all(), many=True).data
def get_C(self, obj):
return CSerializer(queryset=obj.c_set.all(), many=True).data
Теперь, на мой взгляд:
class AListView(ListAPIView):
serializer_class = ASerializer
queryset = A.objects.all()
search_fields = ('id', 'abc', 'bcd', 'B__pqr', 'C__def', )
Я хочу искать в полях сериализатора.
Есть ли способ, где я могу искать в полях B
или 'C'.
Используя search_fields
, я могу искать только в полях A
(abc
, bcd
).