Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Models---------------
- class Credential(models.Model):
- """Used to store various credentials for member validation."""
- document_image = models.ImageField(
- upload_to=get_upload_path(instance="instance",
- filename="filename.ext",
- path='images/credentials/'))
- PASSENGER = 'P'
- OWNER = 'O'
- CAPTAIN = 'C'
- CREDENTIAL_CHOICES = (
- (PASSENGER, 'Passenger'),
- (OWNER, 'Owner'),
- (CAPTAIN, 'Captain'),
- )
- credential_type = models.CharField(max_length=1,
- choices=CREDENTIAL_CHOICES,
- default=PASSENGER)
- credential_number = models.CharField(max_length=255)
- date_received = models.DateTimeField(auto_now_add=True)
- is_verified = models.BooleanField(default=False)
- date_verified = models.DateTimeField(blank=True)
- member = models.ForeignKey(settings.AUTH_USER_MODEL,
- related_name='credentials')
- class MemberProfile(models.Model):
- user = models.OneToOneField(settings.AUTH_USER_MODEL, unique=True, related_name='profile')
- profile_image = models.ImageField(
- upload_to=get_upload_path(instance="instance",
- filename="filename",
- path='images/profile/'),
- blank=True)
- phone_number = models.CharField(max_length=15,
- validators=[
- validators.RegexValidator(r'^\+?1?\d{9,15}$',
- _('Enter a valid telephone number. '
- "Phone number must be entered in the "
- "format: '+999999999'. Up to 15 digits"
- " allowed."), 'invalid'),
- ],
- error_messages={
- # Wrong error message?
- 'unique': _("This telephone number doesn't match our format!"),
- },
- blank=True)
- address = models.ForeignKey(Location, blank=True,
- related_name='member_profiles')
- is_passenger = models.BooleanField(_('passenger status'), default=True,
- help_text=_('Designates whether the member is a passenger.'))
- is_owner = models.BooleanField(_('owner status'), default=False,
- help_text=_('Designates whether the member is a owner.'))
- is_captain = models.BooleanField(_('captain status'), default=False,
- help_text=_('Designates whether the member is a captain.'))
- date_profile_created = models.DateTimeField(_('date profile created'),
- auto_now_add=True)
- date_profile_modified = models.DateTimeField(_('date profile modified'),
- auto_now=True)
- Serializers----------
- class MemberProfileSerializer(serializers.ModelSerializer):
- class Meta:
- model = MemberProfile
- fields = (
- 'profile_image',
- 'phone_number',
- 'is_passenger',
- 'is_owner',
- 'is_captain',
- 'date_profile_created',
- 'date_profile_modified',
- )
- class CredentialSerializer(serializers.ModelSerializer):
- class Meta:
- model = Credential
- fields = (
- 'credential_type',
- 'credential_number',
- 'date_received',
- 'is_verified',
- 'date_verified',
- 'document_image',
- )
- class AuthUserModelSerializer(serializers.ModelSerializer):
- credentials = CredentialSerializer(many=True)
- member = MemberProfileSerializer(read_only=True)
- class Meta:
- model = get_user_model()
- fields = ('id',
- 'username',
- 'password',
- 'email',
- 'first_name',
- 'last_name',
- 'is_staff',
- 'is_active',
- 'date_joined',
- 'member',
- 'credentials',
- )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement