Skip to main content
 首页 » 编程设计

python之Django : Testing admin user

2025年05月04日29mfrbuaa

我需要在 django 应用程序中测试我的一个 View ,这需要 admin 用户 具有特定权限

如何创建一个测试用户并设置它的一些权限,比如staff status 或group permissions?

我可以使用工厂来这样做吗?

请您参考如下方法:

要创建裸 super 用户,请执行 python manage.py createsuperuser https://docs.djangoproject.com/en/dev/ref/django-admin/#createsuperuser

初始设置权限创建自定义 django-admin 命令 app_name/commands/management/create_test_user.py

from django.contrib.auth.models import User, Group, Permission 
from django.core.management.base import BaseCommand 
 
class Command( BaseCommand ): 
 
    help = "Creates test user" 
    args = '<username> <password>' 
 
    def handle( self, username, password ): 
 
        user, created = User.objects.get_or_create( username=username )  
        user.set_password( password ) 
        user.is_staff = True 
        user.save() 
 
        custom_perm = Permission.objects.get( codename='custom_perm_name' ) 
        user.user_permissions.add( custom_perm ) 
 
        if created: 
            print "%s created" % username 
        else: 
            print "%s updated" % username 

然后:

python manage.py create_test_user admin1 qwe123