donation.py 886 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import re
  2. from rest_framework import serializers
  3. from desecapi import models
  4. class DonationSerializer(serializers.ModelSerializer):
  5. class Meta:
  6. model = models.Donation
  7. fields = (
  8. "name",
  9. "iban",
  10. "bic",
  11. "amount",
  12. "message",
  13. "email",
  14. "mref",
  15. "interval",
  16. )
  17. read_only_fields = ("mref",)
  18. extra_kwargs = { # do not return sensitive information
  19. "iban": {"write_only": True},
  20. "bic": {"write_only": True},
  21. "message": {"write_only": True},
  22. }
  23. @staticmethod
  24. def validate_bic(value):
  25. return re.sub(r"\s", "", value)
  26. @staticmethod
  27. def validate_iban(value):
  28. return re.sub(r"\s", "", value)
  29. def create(self, validated_data):
  30. return self.Meta.model(**validated_data)