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'),
                )
        ]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么用Jsoup解析后内容不一样   java save方法无法使用Hibernate+Spring保存对象   java如何从JaxWs WebMethod发送Http状态为202的空响应   Java BuffereImage“块”模糊问题   java中的模板CAL集   java MyBatis deleteinsertupdate在一个查询中   在执行下一个方法之前,java将等待线程执行结束   java JTextField无法保存enter字符   java回滚撤消重做   java解析异常的最佳实践。toString()来执行一些逻辑   在Java中完成类的精确副本的构造函数的单元测试   java我无法从LinkedList类调用客户端中的方法   java启动RxJava2可观察。没有初始延迟的间隔()?   添加更多参数时java Mybatis插入失败