首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django在迁移中插入权限

Django在迁移中插入权限
EN

Stack Overflow用户
提问于 2018-01-13 10:24:56
回答 1查看 1.1K关注 0票数 0

我需要在迁移中填充auth_group_permission表。我用以下代码创建了一个迁移:

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# Generated by Django 1.11.5 on 2017-12-05 10:07
from __future__ import unicode_literals
from django.db import migrations
from django.contrib.auth.models import Group, Permission
from django.contrib.auth.management import create_permissions

def add_group_permissions(apps, schema_editor):
    for app_config in apps.get_app_configs():
        create_permissions(app_config, apps=apps, verbosity=0)

    #Workers
    group, created = Group.objects.get_or_create(name='Workers')   
    can_add_worker_task = Permission.objects.get(codename='add_worker_task')
    group.permissions.add(can_add_worker_task)
    group.save()

class Migration(migrations.Migration):
    dependencies = [
        ('crowdsourcing', '0005_add_view_permission'),
        ('auth', '0001_initial'),
    ]

    operations = [
        migrations.RunPython(add_group_permissions),
    ]

但是,当我执行"python manage.py迁移“命令时,我收到了以下错误:"django.contrib.auth.models.DoesNotExist:权限匹配查询不存在”。我认为问题在于"auth_permission“表仍然是空的。我能解决吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-13 13:22:29

我已经用这个代码解决了:

代码语言:javascript
复制
def add_group_permissions(apps, schema_editor):
    for app_config in apps.get_app_configs():
       app_config.models_module = True
       create_permissions(app_config, apps=apps, verbosity=0)
       app_config.models_module = None
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48238958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档