Advertisement
Guest User

Untitled

a guest
Jun 16th, 2015
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. Models---------------
  2.  
  3. class Credential(models.Model):
  4. """Used to store various credentials for member validation."""
  5. document_image = models.ImageField(
  6. upload_to=get_upload_path(instance="instance",
  7. filename="filename.ext",
  8. path='images/credentials/'))
  9.  
  10. PASSENGER = 'P'
  11. OWNER = 'O'
  12. CAPTAIN = 'C'
  13. CREDENTIAL_CHOICES = (
  14. (PASSENGER, 'Passenger'),
  15. (OWNER, 'Owner'),
  16. (CAPTAIN, 'Captain'),
  17. )
  18.  
  19. credential_type = models.CharField(max_length=1,
  20. choices=CREDENTIAL_CHOICES,
  21. default=PASSENGER)
  22. credential_number = models.CharField(max_length=255)
  23. date_received = models.DateTimeField(auto_now_add=True)
  24. is_verified = models.BooleanField(default=False)
  25. date_verified = models.DateTimeField(blank=True)
  26. member = models.ForeignKey(settings.AUTH_USER_MODEL,
  27. related_name='credentials')
  28.  
  29. class MemberProfile(models.Model):
  30. user = models.OneToOneField(settings.AUTH_USER_MODEL, unique=True, related_name='profile')
  31. profile_image = models.ImageField(
  32. upload_to=get_upload_path(instance="instance",
  33. filename="filename",
  34. path='images/profile/'),
  35. blank=True)
  36. phone_number = models.CharField(max_length=15,
  37. validators=[
  38. validators.RegexValidator(r'^\+?1?\d{9,15}$',
  39. _('Enter a valid telephone number. '
  40. "Phone number must be entered in the "
  41. "format: '+999999999'. Up to 15 digits"
  42. " allowed."), 'invalid'),
  43. ],
  44. error_messages={
  45. # Wrong error message?
  46. 'unique': _("This telephone number doesn't match our format!"),
  47. },
  48. blank=True)
  49. address = models.ForeignKey(Location, blank=True,
  50. related_name='member_profiles')
  51. is_passenger = models.BooleanField(_('passenger status'), default=True,
  52. help_text=_('Designates whether the member is a passenger.'))
  53. is_owner = models.BooleanField(_('owner status'), default=False,
  54. help_text=_('Designates whether the member is a owner.'))
  55. is_captain = models.BooleanField(_('captain status'), default=False,
  56. help_text=_('Designates whether the member is a captain.'))
  57. date_profile_created = models.DateTimeField(_('date profile created'),
  58. auto_now_add=True)
  59. date_profile_modified = models.DateTimeField(_('date profile modified'),
  60. auto_now=True)
  61.  
  62.  
  63. Serializers----------
  64.  
  65. class MemberProfileSerializer(serializers.ModelSerializer):
  66. class Meta:
  67. model = MemberProfile
  68. fields = (
  69. 'profile_image',
  70. 'phone_number',
  71. 'is_passenger',
  72. 'is_owner',
  73. 'is_captain',
  74. 'date_profile_created',
  75. 'date_profile_modified',
  76. )
  77.  
  78.  
  79. class CredentialSerializer(serializers.ModelSerializer):
  80. class Meta:
  81. model = Credential
  82. fields = (
  83. 'credential_type',
  84. 'credential_number',
  85. 'date_received',
  86. 'is_verified',
  87. 'date_verified',
  88. 'document_image',
  89. )
  90.  
  91.  
  92. class AuthUserModelSerializer(serializers.ModelSerializer):
  93. credentials = CredentialSerializer(many=True)
  94. member = MemberProfileSerializer(read_only=True)
  95.  
  96. class Meta:
  97. model = get_user_model()
  98. fields = ('id',
  99. 'username',
  100. 'password',
  101. 'email',
  102. 'first_name',
  103. 'last_name',
  104. 'is_staff',
  105. 'is_active',
  106. 'date_joined',
  107. 'member',
  108. 'credentials',
  109. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement