首页 > 解决方案 > 权限不显示在管理页面

问题描述

我已将一个应用程序添加到我现有的 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'
]

标签: pythondjango

解决方案


权限存储在数据库中,因此当您通过Meta模型添加或删除它们时,当然不会自动反映在数据库中。通过从应用程序 appconfig 的方法post_migrate连接的信号在迁移后添加权限。查看源代码 [GitHub]authready

post_migrate.connect(
    create_permissions,
    dispatch_uid="django.contrib.auth.management.create_permissions"
)

因此,当您更改需要运行的权限makemigrationsmigrate确保将它们添加到数据库中时。


推荐阅读