python - 权限不显示在管理页面
问题描述
我已将一个应用程序添加到我现有的 django 站点并查看它,我创建了一个额外的权限overview.view
。但是,我在我的管理页面中看不到它,所以我也不能将此权限分配给任何用户。我想我已经正确设置了所有文件,但我想我遗漏了一些东西。该文件夹中的所有文件overview
与其他工作文件夹中的文件相同。
我确实看到了该页面,但不知何故我也没有登录。
这是我的urls.py
:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index')
]
models.py
:
从 django.db 导入模型
class Overview(models.Model):
class Meta:
permissions = (
('view', "May view the overview"),
)
和(部分)settings.py
INSTALLED_APPS = [
'overview.apps.OverviewConfig'
]
解决方案
权限存储在数据库中,因此当您通过Meta
模型添加或删除它们时,当然不会自动反映在数据库中。通过从应用程序 appconfig 的方法post_migrate
连接的信号在迁移后添加权限。查看源代码 [GitHub]:auth
ready
post_migrate.connect( create_permissions, dispatch_uid="django.contrib.auth.management.create_permissions" )
因此,当您更改需要运行的权限makemigrations
并migrate
确保将它们添加到数据库中时。
推荐阅读
- sql - 运行脚本时 TS 上出现重复别名错误
- sql - 当字段带有引号时,在 R 中使用 sqldf 进行过滤
- java - 具有通用接口实现的 Java 工厂继承
- symmetricds - SymmetricDS 作为 tomee 服务器上的战争
- powershell - powershell 加入脚本块
- typescript - 简化 ReturnType 以合并来自对象的多个函数
- ruby - 跟踪在 ruby 中使用 open3 调用的 dd 命令的进度
- c++ - QByteArray 访问和严格别名
- javascript - 抽奖命令,按票收费 discord.js
- web-scraping - “requests.get”不保存有用的 youtube 链接