【发布时间】:2018-02-02 03:30:38
【问题描述】:
我知道syncdb 和makemigrations,但我们只能在生产环境中这样做。
我们最近在生产环境中创建了几个表。正如预期的那样,任何用户在管理员上都看不到表格。
发布后,我们在生产 sql 上手动执行了以下 2 个查询(我在本地运行迁移并执行 show create table 查询以获取原始 sql)
django_content_type
INSERT INTO django_content_type(name, app_label, model)
values ('linked_urls',"urls", 'linked_urls');
auth_permission
INSERT INTO auth_permission (name, content_type_id, codename)
values
('Can add linked_urls Table', (SELECT id FROM django_content_type where model='linked_urls' limit 1) ,'add_linked_urls'),
('Can change linked_urls Table', (SELECT id FROM django_content_type where model='linked_urls' limit 1) ,'change_linked_urls'),
('Can delete linked_urls Table', (SELECT id FROM django_content_type where model='linked_urls' limit 1) ,'delete_linked_urls');
现在这个模型在超级用户下是可见的,并且可以授予员工用户访问权限,但是员工用户看不到它。
里面有没有需要输入的表项?
或者在没有syncdb、迁移的情况下有没有其他方法可以解决这个问题?
【问题讨论】:
-
可能有一个 staff 用户组。你授予它权限了吗?
-
是的,还有很多不属于任何组的独立员工用户!
-
那么我建议创建用户组
staff并将其分配给所有员工用户。我不喜欢那个,但也应该可以通过一个 SQL 命令来处理分配。 -
刚刚尝试过,创建了一个组,将模型访问权限授予该组...将其分配给用户。仍然没有运气。看不到表格。
标签: mysql django django-admin migration