Solarlux身份验证服务的身份验证提供程序。
django-slxauth的Python项目详细描述
关于如何使用它,请参考django项目模板。
从1.7升级到1.8
在1.8中引入了一个新的用户名列,它从电子邮件中删除了唯一的标识责任 列。若要迁移现有用户并填充DB,请将以下脚本添加到迁移中。 根据需要修复模型名称,并将依赖项更新到上一次迁移。
然后像往常一样运行makemigrations以更新其他字段。
填充用户名迁移:
import django.contrib.auth.validators from django.db import migrations, models from django.db.models import Count def populate_usernames(apps, schema_editor): User = apps.get_model('app', 'User') for grp in User.objects.exclude(um_id__isnull=True).values('um_id').annotate(ct=Count('um_id')): if grp['ct'] > 1: User.objects.filter(um_id=grp['um_id']).update(um_id=None) for u in User.objects.all(): if u.um_id: u.username = 'um_%s' % u.um_id else: u.username = 'user_%s' % u.id u.save() class Migration(migrations.Migration): dependencies = [ ('app', '0009_auto_20180208_1339'), ] operations = [ migrations.AddField( model_name='user', name='username', field=models.CharField(null=True, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=False, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username'), ), migrations.RunPython(populate_usernames), migrations.AlterField( model_name='user', name='username', field=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'), ) ]