Ejemplo n.º 1
0
class UserInvite(models.Model):
    invited_by = models.ForeignKey(settings.AUTH_USER_MODEL,
                                   on_delete=models.CASCADE,
                                   related_name='invited_users',
                                   null=True,
                                   blank=True,
                                   verbose_name="Кого приглашает")
    created = models.DateTimeField(default=timezone.now,
                                   null=False,
                                   blank=False,
                                   verbose_name="Приглашение создано")
    created_user = models.OneToOneField(settings.AUTH_USER_MODEL,
                                        on_delete=models.CASCADE,
                                        null=True,
                                        blank=True,
                                        verbose_name="Кто приглашает")
    name = models.CharField(max_length=35, null=True, blank=True)
    email = models.EmailField(null=True, blank=True, verbose_name="Емаил")
    username_validator = UnicodeUsernameValidator(
    ) if six.PY3 else ASCIIUsernameValidator()
    token = models.CharField(max_length=255, unique=True)
    is_invite_email_sent = models.BooleanField(default=False)

    def __str__(self):
        return 'UserInvite'
Ejemplo n.º 2
0
class User(AbstractUser):
    objects = CustomUserManager()

    username_validators = [ASCIIUsernameValidator(), username_validator]

    bio = models.CharField(max_length=500, blank=True)
    location = models.CharField(max_length=30, blank=True)
Ejemplo n.º 3
0
class AddTags(forms.Form):
    tag_name_validator = UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator()

    def __init__(self, *args, **kwargs):
        super(AddTags, self).__init__(*args, **kwargs)

        # for i in range(10):
        #     tag_temp = fields_for_model(model=Tag, fields=('tag_name',))
        #     tag_temp['tag_name'].required = False
        #     tag_temp['tag_name_%s' % i] = tag_temp.pop('tag_name')
        #     self.fields.update(tag_temp)

        for i in range(10):
            tag_temp = forms.CharField(max_length=50,
                                       help_text=_(
                                           'Maksymalna długość 50 znaków. Dozwolone są litery, cyfry i @/./+/-/_.'),
                                       validators=[self.tag_name_validator],
                                       error_messages={
                                           'unique': _("Tag o takiej nazwie już istnieje"),
                                           'invalid': _("Podaj poprawną nazwę tag"),
                                       },
                                       required=False)
            self.fields.update({'tag_name_%s' % i: tag_temp})

    def save(self):
        name_list = []

        for key, value in self.cleaned_data.items():
            if value != '':
                tag, status = Tag.objects.get_or_create(tag_name=value)
                name_list.append(tag)

        return name_list
Ejemplo n.º 4
0
class ClientUser(User):
    username_validator = ASCIIUsernameValidator()

    class Meta:
        proxy = True
        verbose_name = 'Cliente'
        permissions = (('view_clientuser', 'can see client user'), )
Ejemplo n.º 5
0
class CustomUser(AbstractUser):
    username_validator = ASCIIUsernameValidator()

    username = models.CharField(
        _('username'),
        max_length=128,
        unique=True,
        help_text=_('Required. 150 characters or fewer. Letters, digits and '
                    '@/./+/-/_ only.'),
        validators=[
            username_validator,
        ],
        error_messages={
            'unique': _('A user with that username already exists.'),
        },
    )
    email = models.EmailField(
        _('email address'),
        max_length=128,
        unique=True,
        error_messages={
            'unique': 'A user with that email already exists.',
        },
    )

    objects = CustomUserManager()

    EMAIL_FIELD = 'email'
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = [
        'email',
    ]
Ejemplo n.º 6
0
class CustomUser(AbstractBaseUser, auth_models.PermissionsMixin):
    username_validator = ASCIIUsernameValidator()

    """カスタムユーザーモデル."""
    class Meta:
        db_table = 'custom_user'

    #ユーザ基本情報
    username = models.CharField(max_length=10,unique=True)
    email = models.EmailField(unique=False, blank=True)
    first_name = models.CharField(max_length=30, blank=True)
    last_name = models.CharField(max_length=150, blank=True)

    #ユーザプロフィール詳細
    profile = models.CharField(max_length=10000, blank=True)

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

    # Default Permission
    is_staff = models.BooleanField(default=False)
    is_admin = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_superuser = models.BooleanField(default=False)

    objects = auth_models.UserManager()

    def __str__(self):
        return self.username
Ejemplo n.º 7
0
    def validate_input_and_create_superuser(self, username: str, password: str, secret: str):
        """
        Check all fields, then create a superuser

        :param str username: The Username
        :param str password: The Password
        :param str secret: The Secret (BASE32 format)

        :raises CommandError: When something is wrong
        """
        try:
            ASCIIUsernameValidator()(username)
        except ValidationError as ex:
            raise CommandError(_('Username "%(username)s" is invalid: %(message)s') % {
                'username': username, 'message': ex.message
            })
        try:
            validate_password(password)
        except ValidationError as ex:
            raise CommandError('{}: {}'.format(
                _('The password is invalid'),
                ' '.join(ex.messages)
            ))
        try:
            secret_bin = b32decode(secret)
        except binascii.Error as ex:
            raise CommandError(_('Invalid TOTP Secret: %(message)s') % {
                'message': str(ex)
            })
        self.database_operation(username, password, secret_bin)
Ejemplo n.º 8
0
class Owner(User):
    username_validator = ASCIIUsernameValidator()

    class Meta:
        proxy = True
        verbose_name = 'Owner'
        verbose_name_plural = 'Owners'
Ejemplo n.º 9
0
class User(AbstractUser):
    # Default validator became UnicodeUsernameValidator under python3.
    username_validator = ASCIIUsernameValidator()
    # Re-declaration of username because of this issue, http://stackoverflow.com/a/41634646
    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=
        _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
          ),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )

    class Meta:
        verbose_name = 'ユーザー'
        verbose_name_plural = 'ユーザー'
        # this usage of index_together is to merely add simple index to date_joined field declared in AbstractUser.
        # the result is completely the same as db_index.
        index_together = [['date_joined']]

    def __str__(self):
        return '%s' % (self.username, )
Ejemplo n.º 10
0
class UserProfile(AbstractUser):
    username_validator = UnicodeUsernameValidator(
    ) if six.PY3 else ASCIIUsernameValidator()
    username = models.CharField('用户名',
                                max_length=150,
                                help_text='请输入您的名字',
                                validators=[username_validator],
                                null=True,
                                blank=True)
    job_num = models.CharField(max_length=30,
                               unique=True,
                               verbose_name="工号",
                               help_text="请填写工号,型如:z18861")
    mobile = models.CharField(null=True,
                              blank=True,
                              max_length=11,
                              verbose_name="手机号")
    phone = models.CharField(null=True,
                             blank=True,
                             max_length=20,
                             verbose_name="工位分机号")
    avatar = models.ImageField(upload_to="avatar",
                               default="",
                               verbose_name="头像")
    USERNAME_FIELD = 'job_num'
    objects = MyUserManager()

    class Meta:
        verbose_name = "用户"
        verbose_name_plural = verbose_name

    def __str__(self):
        return "{}-{}".format(self.job_num, self.username)
Ejemplo n.º 11
0
class User(AbstractBaseUser):
    """
    Simplified User class which store only username, password and join datetime.
    """
    username = models.CharField(
        max_length=150,
        unique=True,
        validators=[ASCIIUsernameValidator()],
        help_text=
        'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.',
        error_messages={'unique': "A user with that username already exists."},
    )
    join_datetime = models.DateTimeField(auto_now_add=True)

    objects = UserManager()

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ('password', )

    def get_full_name(self):
        return self.username

    def get_short_name(self):
        return self.username

    @cached_property
    def last_login(self):
        """
        Override model field from AbstractBaseUser
        :return: datetime of last login
        """
        details = self.login_details.last()
        return details.login_datetime if details is not None else None
Ejemplo n.º 12
0
class User(AbstractBaseUser, PermissionsMixin):
    # email = models.EmailField(
    #     verbose_name='email address',
    #     max_length=255,
    #     unique=True,
    # )
    # date_of_birth = models.DateField()
    # is_admin = models.BooleanField(default=False)
    username_validator = ASCIIUsernameValidator()
    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=_(
            'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    name = models.TextField()
    balance = models.DecimalField(max_digits=15, decimal_places=2, default=0)
    profile = models.TextField(blank=True)
    picture = models.ForeignKey(
        BlobStorage, on_delete=models.CASCADE, related_name='user_picture', blank=True, null=True)
    objects = UserManager()

    USERNAME_FIELD = 'username'
Ejemplo n.º 13
0
class Account(AbstractBaseUser, PermissionsMixin):
    username_validator = UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator()

    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=_('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )

    email = models.EmailField(
        verbose_name='Email address',
        max_length=255,
        unique=True,
    )

    first_name = models.CharField(max_length=255)
    last_name = models.CharField(max_length=255)

    tel_1 = models.CharField(max_length=20)
    tel_2 = models.CharField(max_length=20, blank=True)

    latitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True)
    longtitude = models.DecimalField(max_digits=9, decimal_places=6, null=True, blank=True)

    address = models.TextField(max_length=255)
    city = models.CharField(max_length=100)
    zip_code = models.CharField(max_length=10)

    is_admin = models.BooleanField(default=False)
    is_veterinarian = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)

    specialties = models.CharField(max_length=100, null=True, blank=True)
    license = models.CharField(max_length=100, null=True, blank=True)

    last_active = models.DateTimeField(_('last active'), blank=True, null=True)
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

    objects = AccountManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    def __str__(self):
        return self.email

    @property
    def is_staff(self):
        return self.is_admin

    def get_short_name(self):
        return self.email

    def get_full_name(self):
        return '{0} {1}'.format(self.first_name, self.last_name)
Ejemplo n.º 14
0
class User(AbstractUser):
    username = models.CharField(
        verbose_name=_('username'),
        max_length=150,
        unique=True,
        default=generate_random_username,
        help_text=
        _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
          ),
        validators=[ASCIIUsernameValidator()],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    email = models.EmailField(_('email address'), db_index=True, blank=True)
    phone = models.CharField(
        verbose_name=_('phone'),
        max_length=15,
        validators=[
            RegexValidator(
                regex=r'^\d+$',
                message=_('Phone number should only be comprised of digits.')),
        ],
        db_index=True,
        blank=True,
    )
    city = models.ForeignKey(
        to=City,
        verbose_name=_('city'),
        related_name='users',
        on_delete=models.CASCADE,
        null=True,
        blank=True,
    )
    USERNAME_FIELD = 'username'
Ejemplo n.º 15
0
class User(AbstractBaseUser, PermissionsMixin):
    username_validator =\
        UnicodeUsernameValidator() if six.PY3 else ASCIIUsernameValidator()

    username = models.CharField(
        _('username'),
        max_length=30,
        unique=True,
        help_text=_('Required. 30 characters or fewer. Letters, digits and '
                    ' @/./+/-/_ only.'),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    email = models.EmailField(_('email address'), unique=True)
    is_staff = models.BooleanField(
        _('staff status'),
        default=False,
        help_text=_('Designates whether the user can log into'
                    ' this admin site.'),
    )
    is_active = models.BooleanField(
        _('active'),
        default=True,
        help_text=_(
            'Designates whether this user should be treated as active. '
            'Unselect this instead of deleting accounts.'),
    )
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

    username_set = models.BooleanField(default=True)
    timezone = TimeZoneField(default='Europe/London')

    objects = UserManager()

    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

    class Meta:
        verbose_name = _('user')
        verbose_name_plural = _('users')

    def get_full_name(self):
        """
        Returns the first_name plus the last_name, with a space in between.
        """
        full_name = '%s %s' % (self.profile.first_name, self.profile.last_name)
        return full_name.strip()

    def get_short_name(self):
        "Returns the short name for the user."
        return self.profile.first_name

    def email_user(self, subject, message, from_email=None, **kwargs):
        """
        Sends an email to this User.
        """
        send_mail(subject, message, from_email, [self.email], **kwargs)
Ejemplo n.º 16
0
class User(AbstractBaseUser, PermissionsMixin):
    GENDER_CHOICES = (('male', 'Male'), ('female', 'Female'))

    username_validator = UnicodeUsernameValidator(
    ) if six.PY3 else ASCIIUsernameValidator()

    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=
        _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
          ),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    is_staff = models.BooleanField(_('staff status'), default=False)
    is_active = models.BooleanField(_('active'), default=True)
    email = models.EmailField(_('email address'), blank=True, unique=True)
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    birthday = models.DateField(null=True, blank=True)
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
    gender = models.CharField(max_length=8,
                              null=True,
                              blank=True,
                              choices=GENDER_CHOICES)
    avatar = models.ForeignKey(Image,
                               null=True,
                               blank=True,
                               related_name="avatar")
    about = models.TextField(null=True, blank=True)
    facebook_id = models.BigIntegerField(null=True, blank=True)
    location = models.PointField(null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    objects = UserManager()

    def get_full_name(self):
        """ The user is identified by their email address """
        return self.email

    def get_short_name(self):
        """ The user is identified by their email address """
        return self.email

    def __str__(self):
        return self.email

    class Meta:
        verbose_name = 'user'
        verbose_name_plural = 'users'
        db_table = "auth_user"
Ejemplo n.º 17
0
class User(AbstractBaseUser, PermissionsMixin):
    username_validator = UnicodeUsernameValidator(
    ) if six.PY3 else ASCIIUsernameValidator()

    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=
        _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
          ),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    email = models.EmailField(_('email address'),
                              unique=True,
                              null=True,
                              blank=True)
    first_name = models.CharField(_('first name'), max_length=30, blank=True)
    last_name = models.CharField(_('last name'), max_length=30, blank=True)
    date_joined = models.DateTimeField(_('date joined'), auto_now_add=True)
    is_active = models.BooleanField(_('active'), default=True)
    avatar = models.ImageField(upload_to='avatars/', null=True, blank=True)
    is_staff = models.BooleanField(
        _('staff status'),
        default=False,
        help_text=_(
            'Designates whether the user can log into this admin site.'),
    )
    objects = UserManager()

    EMAIL_FIELD = 'email'
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

    class Meta:
        verbose_name = _('user')
        verbose_name_plural = _('users')

    def get_full_name(self):
        '''
        Returns the first_name plus the last_name, with a space in between.
        '''
        full_name = '%s %s' % (self.first_name, self.last_name)
        return full_name.strip()

    def get_short_name(self):
        '''
        Returns the short name for the user.
        '''
        return self.first_name

    def email_user(self, subject, message, from_email=None, **kwargs):
        '''
        Sends an email to this User.
        '''
        send_mail(subject, message, from_email, [self.email], **kwargs)
Ejemplo n.º 18
0
class User(User):
    username_validator = ASCIIUsernameValidator()

    class Meta:
        proxy = True  # If no new field is added.

    def __str__(self):
        return "{}".format(self.firstname + " " + self.surname)
Ejemplo n.º 19
0
class User(AbstractUser):
    email = models.EmailField(_('email address'), unique=True)
    username_validator = ASCIIUsernameValidator()
    REQUIRED_FIELDS = ['email',]

    @property
    def is_adherent(self):
        return self.groups.filter(name='adherent').exists()
Ejemplo n.º 20
0
class User(AbstractBaseUser):
    """
    Extends AbstractBaseUser, inherits password field and set of useful methods
    Added some fields and methods based on builtin django user (AbstractUser) class
    At the end contains: ID(default if no pk specified), username, email, password, date_joined, last_login
    """
    username_validator = UnicodeUsernameValidator(
    ) if six.PY3 else ASCIIUsernameValidator()

    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=
        _('Maksymalna długość 150 znaków. Dozwolone są litery, cyfry i @/./+/-/_.'
          ),
        validators=[username_validator],
        error_messages={
            'unique': _("Użytkownik o takiej nazwie już istnieje"),
            'invalid': _("Podaj poprawną nazwę użytkownika"
                         ),  # Override username_validator error
        },
    )

    email = models.EmailField(
        _('email address'),
        unique=True,
        error_messages={
            'unique': _("Użytkownik o takim emailu już istnieje"),
        },
    )

    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

    objects = UserManager()

    EMAIL_FIELD = 'email'
    USERNAME_FIELD = 'username'

    REQUIRED_FIELDS = ['password', 'email']

    def clean(self):
        super(User, self).clean()  # call base method - clearing username

    def get_full_name(self):
        """
        Base method force to override this method
        Just return username
        """
        return self.username

    def get_short_name(self):
        """
        Base method force to override this method
        Just return username
        """
        return self.username
Ejemplo n.º 21
0
class user(models.Model):
    username_validator = ASCIIUsernameValidator()
    firstName = models.CharField(max_length=100)
    lastName = models.CharField(max_length=200)
    username = models.CharField(max_length=100, default="")
    eMail = models.CharField(max_length=200)
    company = models.CharField(max_length=200)
    Manager = models.CharField(max_length=200)
    program = models.CharField(max_length=200)
    phoneNum = models.IntegerField()
Ejemplo n.º 22
0
class LoginForm(forms.Form):
    username = forms.CharField(
        required=True,
        validators=[
            ASCIIUsernameValidator(
                message='Enter a valid username. 30 characters or fewer. \
                    Letters, digits and ./-/_ only. Please do not copy paste here.',
                code='invalid_username'),
        ])
    password = forms.CharField(widget=forms.PasswordInput, required=True)
Ejemplo n.º 23
0
    def __init__(self, *args, **kwargs):

        super(Profile, self).__init__(*args, **kwargs)

        self._meta.get_field(
            'username'
        ).validators[0] = ASCIIUsernameValidator(
            message=
            u'Введите валидное имя. Имя может содержать цифры, буквы лат алфавита и знаки @.+-_'
        )
Ejemplo n.º 24
0
class User(AbstractBaseUser, PermissionsMixin):
    username_validator = ASCIIUsernameValidator()  # 文字コードの違いを吸収
    username = models.CharField(
        _('username'),
        max_length=150,
        unique=True,
        help_text=
        _('Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.'
          ),
        validators=[username_validator],
        error_messages={
            'unique': _("A user with that username already exists."),
        },
    )
    email = models.EmailField(_('email address'), blank=True)
    profile_icon = models.ImageField(_('profile icon'),
                                     upload_to='profile_icons',
                                     null=True,
                                     blank=True)
    self_introduction = models.CharField(_('self introduction'),
                                         max_length=512,
                                         blank=True)
    is_admin = models.BooleanField(default=False)
    is_staff = models.BooleanField(
        _('staff status'),
        default=False,
        help_text=_(
            'Designates whether the user can log into this admin site.'),
    )
    is_active = models.BooleanField(
        _('active'),
        default=True,
        help_text=_(
            'Designates whether this user should be treated as active. '
            'Unselect this instead of deleting accounts.'),
    )
    date_joined = models.DateTimeField(_('date joined'), default=timezone.now)

    objects = UserManager()

    EMAIL_FIELD = 'email'
    USERNAME_FIELD = 'username'
    REQUIRED_FIELDS = ['email']

    class Meta:
        verbose_name = _('user')
        verbose_name_plural = _('users')
        db_table = 'users'

    def clean(self):
        super().clean()
        self.email = self.__class__.objects.normalize_email(self.email)

    def email_user(self, subject, message, from_email=None, **kwargs):
        send_mail(subject, message, from_email, [self.email], **kwargs)
Ejemplo n.º 25
0
class Profile(User, models.Model):
    username_validator = ASCIIUsernameValidator()
    date_of_birth = models.DateField()
    bio = models.TextField()
    avatar = models.ImageField(blank=True, upload_to='assets/images')

    class Meta:
        pass

    def __str__(self):
        return self.username
Ejemplo n.º 26
0
class StaffUser(User):
    username_validator = ASCIIUsernameValidator()

    class Meta:
        proxy = True
        verbose_name = 'staff'
        permissions = (
            ('add_address', 'Can add address'),
            ('change_address', 'Can change address'),
            ('delete_address', 'Can delete address'),
        )
Ejemplo n.º 27
0
class Paciente(User):
    username_validator = ASCIIUsernameValidator()
    # user = models.OneToOneField(User, on_delete=models.CASCADE)
    instituicao_ensino = models.CharField(('Instituição de ensino'), max_length=20, blank=False)
    idade = models.IntegerField(('Idade'))
    telefone = models.CharField(('Telefone'), max_length=20, blank=True)
    cpf = models.CharField(('CPF'), max_length=20, blank=True)
    history = HistoricalRecords()
    # objects = UserManager()

    def __str__ (self):
        return self.username
Ejemplo n.º 28
0
    def _create_user(self, username, email, password, **extra_fields):
        """メールアドレスでの登録を必須にする"""
        if not email:
            raise ValueError('The given email must be set')

        username_validator = ASCIIUsernameValidator()
        username = self.model.normalize_username(username, required=True, validators=[username_validator])
        email = self.normalize_email(email, required=True)

        user = self.model(username=username, email=email, **extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user
Ejemplo n.º 29
0
def signup_view(request):
    data = {}
    status = HTTPStatus.CREATED

    try:
        if request.method == "POST":
            json_body = loads(request.body)

            username = json_body.get("user", None)
            password = json_body.get("password", None)
            password_confirm = json_body.get("passwordConfirm", None)

            if not username or not password or not password_confirm:
                raise ValueError()

            if password != password_confirm:
                raise ValueError()

            username_validator = ASCIIUsernameValidator(
                message="Please check the username condition."
            )

            username_validator(username)
            validate_password(password)

            user = User.objects.create_user(username=username)
            user.set_password(password)
            user.save()

            data["access_token"] = generate_access_token(username)
            data["user"] = username

        else:
            return HttpResponseNotAllowed(["POST"])

    except ValidationError as e:
        # Password validation exception
        data["error"] = e.messages
        status = HTTPStatus.BAD_REQUEST

    except IntegrityError:
        # Duplicate user name exception
        data["error"] = "Duplicate user name. Please use a different name."
        status = HTTPStatus.BAD_REQUEST

    except ValueError:
        # Invalid user request exception
        data["error"] = "Invalid form. Please fill it out again."
        status = HTTPStatus.BAD_REQUEST

    return JsonResponse(data, status=status)
Ejemplo n.º 30
0
class OrganizationAdmin(BaseModel):
    class Meta(BaseModel.Meta):
        db_table = 'organization_admin'
        ordering = ['id']

    username = models.CharField(
        max_length=12,
        validators=[ASCIIUsernameValidator(), MinLengthValidator(4)],
        unique=True)
    password = models.CharField(max_length=18, validators=[MinLengthValidator(4)])
    organization = models.ForeignKey(Organization, on_delete=models.CASCADE)

    def __unicode__(self):
        return u"组织账号:{}".format(self.username)