in phones/models.py [0:0]
def save(self, *args, **kwargs):
# delete any expired unverified RealPhone records for this number
# note: it doesn't matter which user is trying to create a new
# RealPhone record - any expired unverified record for the number
# should be deleted
RealPhone.expired_objects.delete_for_number(self.number)
# We are not ready to support multiple real phone numbers per user,
# so raise an exception if this save() would create a second
# RealPhone record for the user
try:
verified_number = RealPhone.verified_objects.get_for_user(self.user)
if not (
verified_number.number == self.number
and verified_number.verification_code == self.verification_code
):
raise BadRequest("User already has a verified number.")
except RealPhone.DoesNotExist:
pass
# call super save to save into the DB
# See also: realphone_post_save receiver below
return super().save(*args, **kwargs)