Django 内置的用户权限

  1. $ python manage.py migrate # 创建表结构
  2. $ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
  3. $ python manage.py migrate TestModel # 创建表结构

正常的流程是先创建表,再导入数据。那么Django 会自动给每个表创建add, change,delete用户权限。
现在遇到的问题是,数据库已经存在,表已经建好。将表结构导入到models.py中(操作见《django引入现有数据库 》http://blog.csdn.net/u011630575/article/details/51184512)。出现的问题是用户权限列表中不存在这一过程生成的表的用户权限。

解决办法是
1. 修改setting.py中的数据库名为临时的一数据库,
2. 再次生成表结构到临时的数据库中。(上面引用的命令)
3. 将auth_permission, django_content_type, django_migrations三个表的数据导入到原数据库中。
4. setting.py中的数据库名,再改原数据库名。
5. 这个时候在权限列表中就能显示对应表的权限。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django 提供了一个强大的权限系统,可以帮助你管理用户权限。在 Django 中,你可以使用内置的 User 和 Group 模型来管理用户和用户组。 首先,你需要在你的 Django 项目中启用权限系统。在你的 settings.py 文件中,确保 'django.contrib.auth' 和 'django.contrib.contenttypes' 应用被添加到了 INSTALLED_APPS 列表中。 接下来,你可以使用 Django 的认证系统来处理用户认证和授权的任务。你可以使用以下方法来检查用户权限: 1. `user.has_perm(permission, obj=None)` - 检查用户是否有指定的权限。`permission` 参数是一个字符串,表示权限的名称。`obj` 参数是可选的,用于在特定对象上检查权限。 2. `user.has_perms(permissions, obj=None)` - 检查用户是否拥有所有指定的权限。`permissions` 参数是一个字符串列表,表示多个权限的名称。 3. `user.has_module_perms(app_label)` - 检查用户是否对指定应用程序拥有任何权限。`app_label` 参数是应用程序的名称。 此外,你还可以使用装饰器 `@permission_required` 和 `@login_required` 来限制对视图函数的访问权限。`@permission_required` 装饰器可以确保只有具有特定权限的用户才能访问被装饰的视图函数,而 `@login_required` 装饰器可以确保只有已登录的用户才能访问被装饰的视图函数。 当然,你也可以自定义权限,通过在 models.py 中创建 Permission 对象,并在 User 或 Group 对象上分配这些自定义权限。 要了解更多关于 Django用户权限管理的信息,可以参考 Django 官方文档中的相关章节。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值