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 Java8,HttpClient,接收到“收到致命警报:握手失败”   java需要什么样的Servlet。当我们使用构建路径选项在动态Web项目中创建servlet时,eclipseIDE中的jar?   primefaces惰性数据加载和hibernate,java。lang.NullPointerException错误   java改变JTable的外观和感觉   java在运行时将JPanel切换为jframe contentpane   hashmap如何使用Java高效地对SQL查询输出进行分组?   java TouchListener不工作   如何持续检查文本文件中的文本是否已变为空?JAVA   java Android:动画的起点是什么?   Java中的集合类   java freemarker是按引用分配还是按值分配?它有什么缺点吗?   java Heroku容器:释放抛出未处理的PromisejectionWarning:   按集合中的内部集合元素类型进行java分组   java Android+facebook sdk   java类不能强制转换到另一个类   java openbravo调用以使用OBDal。getInstance。保存不工作   java在尝试使用jmod文件时遇到的困难