Incluir o excluir dinámicamente los campos de la clase Serializer
En miUser
modelo de perfil que he incluido unashow_email
campo explícitamente. Entonces, para agregar esta característica a mi API, la clase UserSerializer se ve así:
class UserSerializer(serializers.ModelSerializer):
email = serializers.SerializerMethodField('show_email')
def show_email(self, user):
return user.email if user.show_email else None
class Meta:
model = django.contrib.auth.get_user_model()
fields = ("username", "first_name", "last_name", "email")
Pero no me gusta mucho. Creo que sería mucho más limpio si el campoemail
sería completamente excluido de la salida del serializadorshow_email
esFalse
, en cambio mostrando eso feo"email": null
cosa.
¿Cómo podría hacer eso?