如何在Django1.5中向程序中的新模型添加权限

2024-09-27 21:23:17 发布

您现在位置:Python中文网/ 问答频道 /正文

目标服务器正在运行我无法更新的django1.5。数据库由dba更改,我不能更改。我可以为dba在数据库服务器上创建的新表创建一个模型。我想用管理模式来管理它。我给出了一个类似/admin/mynewapp/mynewmodel/的链接,但有人告诉我没有操作模型的权限。我可以查看auth_权限表,新模型没有“更改”、“添加”和“删除”等默认权限。我的新模型也没有contenttype。我不想使用syncdb这样的命令,因为我不确定它是否会造成一些数据丢失。我想我没有权限的原因可能是auth_permission表中没有默认权限。那么,当我不使用syncdb命令创建模型时,如何添加这些默认权限?谢谢。在


Tags: 数据模型命令服务器auth数据库权限目标
1条回答
网友
1楼 · 发布于 2024-09-27 21:23:17

首先尝试使用Django中提供的命令行实用程序:

https://github.com/django/django/blob/1.6.5/django/contrib/contenttypes/management.py

来填充contenttypes表(也应该在那边的某个地方)。之后,您可以尝试用默认的权限表来填充您所有的应用程序(安装在您的settings.py中的INSTALLED_APPS中)。您可以从这里使用实用函数create_permissions

https://github.com/django/django/blob/1.5/django/contrib/auth/management/init.py

应该是这样的:

from django.contrib.contenttypes.management import update_all_contenttypes
from django.contrib.auth.management import create_permissions
from django.db.models import get_apps
update_all_contenttypes()
for app in get_apps():
    create_permissions(app, None, 2)

相关问题 更多 >

    热门问题