Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.81 KB | None | 0 0
  1. from django.db import models
  2. from django.utils import timezone
  3. from django.contrib.auth.models import AbstractUser
  4. from django.contrib.postgres.fields import JSONField
  5. from django.conf import settings
  6. from django.utils.translation import ugettext_lazy as _
  7. # from django.contrib.auth.models import User
  8.  
  9. import string, random
  10. from datetime import datetime, timedelta
  11. import pytz
  12. from ceexlo.custom_codes import GENDER, ETHNICITY
  13. from timezone_field import TimeZoneField
  14.  
  15. class User(AbstractUser):
  16.     GENDER = GENDER
  17.     ETHNICITY = ETHNICITY
  18.     avatar = models.CharField(max_length=2048, blank=True, default='/static/img/ressources/user.png')
  19.     ip = models.CharField(max_length=32, blank=True, editable=False)
  20.     tel = models.CharField(max_length=32, blank=True)
  21.     postal_address = models.CharField(max_length=255, blank=True)
  22.     postal_address_2 = models.CharField(max_length=255, blank=True)
  23.     city = models.CharField(max_length=64, blank=True)
  24.     country = models.CharField(max_length=64, blank=True)
  25.     zip_code = models.CharField(max_length=5, blank=True)
  26.     lang = models.CharField(max_length=8, choices=settings.LANG_SUPPORTED, default='en')
  27.     birth_date = models.DateField(null=True, blank=True)
  28.     gender = models.IntegerField(choices=GENDER, null=True, blank=True)
  29.     ethnicity = models.IntegerField(choices=ETHNICITY, null=True, blank=True)
  30.     timezone = TimeZoneField(default='UTC')
  31.     data = JSONField(default={}, blank=True, null=True)
  32.     options = JSONField(default={}, blank=True, null=True)
  33.     last_update = models.DateTimeField()
  34.  
  35.     @property
  36.     def full_name(self):
  37.         return f'{self.first_name} {self.last_name}'
  38.    
  39.     def save(self, *args, **kwargs):
  40.         self.last_update = datetime.now(pytz.timezone("UTC"))
  41.         if self.username == '' or self.username == None:
  42.             self.username = self.email
  43.         super(User, self).save(*args, **kwargs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement