问题:管理员不授予对模型的访问权限。我怀疑原因是模型上的一个手动设置app_label
。在
我有一个覆盖了app_label
和{Meta
类中。在
class FAQ(models.Model):
# some fields
class Meta:
app_label = 'support'
table_name = 'faq_faq'
这就是我能想到的:
1.当试图授予用户对它的权限时,我在列表中看到,对于这个模型,它没有显示在Meta
中设置的app_label
,而是显示模型名称本身,例如faq | faq | Add..
等等。在
2.正在进行实际权限检查的ModelBackend
类似乎从Permission
实例属性content_type
获取{
事实证明,Permission.content_type.app_label
是用于填充1.中的perms列表的相同属性,已经注意到它与模型中的标签集不同。由于has_module_perms
确实是用正确的_meta.app_label
模型实例属性调用的,所以权限列表中不存在预期的应用程序标签,因此用户没有被授予访问权限。在
更复杂的是,我有几个其他的模型具有相同的设置(手动设置app_label
等等),它们在用户的详细信息页面上显示得很好。它们会在列表中显示正确的应用程序标签,并给用户提供访问这些标签的权限,从而使管理员在索引页上显示链接。在
问题:虽然这看起来像是一个bug,但我知道这是一个不常见的情况,我正在开发一个不受支持的版本;我可以解决这个问题,强制权限识别我自己的app_label
?在
环境:django 1.6.1(是,EOL),django套装0.2.12
提前致谢。虽然我更喜欢一个不涉及数据库混乱的解决方案(混乱的数据,重新创建表/模型,等等),但我也很欣赏其他任何建议。在
目前没有回答
相关问题 更多 >
编程相关推荐