# Generated by Django 2.1.2 on 2018-10-17 15:09 from django.conf import settings import django.contrib.auth.models import django.contrib.auth.validators from django.db import migrations, models import django.db.models.deletion import django.utils.timezone class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ] operations = [ migrations.CreateModel( name='UserProfile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('name', models.CharField(default='', max_length=20, verbose_name='姓名')), ('birthday', models.DateField(blank=True, null=True, verbose_name='出生日期')), ('gender', models.CharField(choices=[('male', '男'), ('female', '女')], default='male', max_length=10, verbose_name='性别')), ('mobile', models.CharField(default='', max_length=11, verbose_name='手机号码')), ('email', models.EmailField(max_length=50, verbose_name='邮箱')), ('image', models.ImageField(blank=True, default='image/default.jpg', null=True, upload_to='image/%Y/%m')), ('post', models.CharField(blank=True, max_length=50, null=True, verbose_name='职位')), ], options={ 'verbose_name': '用户信息', 'verbose_name_plural': '用户信息', 'ordering': ['id'], }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='Menu', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, unique=True, verbose_name='菜单名')), ('icon', models.CharField(blank=True, max_length=50, null=True, verbose_name='图标')), ('code', models.CharField(blank=True, max_length=50, null=True, verbose_name='编码')), ('url', models.CharField(blank=True, max_length=128, null=True, unique=True)), ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.Menu', verbose_name='父菜单')), ], options={ 'verbose_name': '菜单', 'verbose_name_plural': '菜单', }, ), migrations.CreateModel( name='Role', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=32, unique=True, verbose_name='角色')), ('desc', models.CharField(blank=True, max_length=50, null=True, verbose_name='描述')), ('permissions', models.ManyToManyField(blank=True, to='system.Menu', verbose_name='URL授权')), ], ), migrations.CreateModel( name='Structure', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=60, verbose_name='名称')), ('type', models.CharField(choices=[('unit', '单位'), ('department', '部门')], default='department', max_length=20, verbose_name='类型')), ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.Structure', verbose_name='父类架构')), ], options={ 'verbose_name': '组织架构', 'verbose_name_plural': '组织架构', }, ), migrations.AddField( model_name='userprofile', name='department', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='system.Structure', verbose_name='部门'), ), migrations.AddField( model_name='userprofile', name='groups', field=models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups'), ), migrations.AddField( model_name='userprofile', name='roles', field=models.ManyToManyField(blank=True, to='system.Role', verbose_name='角色'), ), migrations.AddField( model_name='userprofile', name='superior', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='上级主管'), ), migrations.AddField( model_name='userprofile', name='user_permissions', field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'), ), ]