目标服务器正在运行django 1.5,我无法更新。数据库由dba更改,我无法更改。我可以在数据库服务器上为dba创建的新表创建模型。我想使用管理模型来管理它。我给出了像/admin/mynewapp/mynewmodel/
这样的链接,但我被告知我没有权限操作该模型。我可以查看auth_permission表,并且没有默认权限,例如'更改','添加'并且'删除'为我的新模型。我的新模型也没有内容类型。我不想使用像syncdb这样的命令,因为我不确定它是否会造成一些数据丢失。我认为我没有权限的原因可能是auth_permission表中没有默认权限。那么在不使用命令syncdb的情况下创建模型时如何添加这些默认权限?感谢。
答案 0 :(得分:1)
首先尝试使用Django中提供的命令行实用程序:
https://github.com/django/django/blob/1.6.5/django/contrib/contenttypes/management.py
填写内容类型表(也应该在那里的某个地方)。之后,您可以尝试使用所有应用的默认权限填充权限表(安装在INSTALLED_APPS
中的settings.py
)。你可以从这里获得效用函数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)