Zajmuję się tworzeniem API z frameworkiem Django Rest i chciałbym dynamicznie usunąć pola z serializera. Problem polega na tym, że muszę je usunąć w zależności od wartości innego pola. Jak mogłem to zrobić? Mam serializatora jak:Jak dynamicznie usuwać pola z wyjścia serializatora
class DynamicSerliazer(serializers.ModelSerializer):
type = serializers.SerializerMethodField()
url = serializers.SerializerMethodField()
title = serializers.SerializerMethodField()
elements = serializers.SerializerMethodField()
def __init__(self, *args, **kwargs):
super(DynamicSerliazer, self).__init__(*args, **kwargs)
if self.fields and is_mobile_platform(self.context.get('request', None)) and "url" in self.fields:
self.fields.pop("url")
Jak widać, jestem już usuwając pole „URL” w zależności od tego, czy żądanie zostało zrobione z platformy mobilnej. Ale chciałbym usunąć pole "elements" w zależności od wartości "type". Jak mam to zrobić?
góry dzięki
Dziękuję bardzo, działa to jak urok – FVod