I have a serializer and I'm trying to add field level validation and I need to verify if some charfields of the serialize are empty or not, and if a boolean field is true or false.
I have this serializer but I never return an error even if Ficha_publicada is false
class PublicarSerializer(serializers.Serializer):
Titulo = serializers.CharField(required=True)
Ficha_publicada = serializers.BooleanField()
def validate_Titulo(self, attrs, source):
value = attrs[source]
if not Ficha_publicada:
raise serializers.ValidationError("Ficha no publicada")
return attrs
class Meta:
model = Fichas
use
attrs['Ficha_publicada']
:For Django 1.8 you need to use a slightly different method signature.
From (<1.8)
def validate_Titulo(self, attrs, source):
To (1.8)
def validate_Titulo(self, attrs, source=None):
If you do not add the default
None
to thesource
argument in Django 1.8 you will get a TypeError exception saying:validate_Titulo() missing 1 required positional argument: 'source'
And for
Django rest framework 3.0
and more recent versions: