2012-09-10 28 views
2

我已经建立,我想从我的开发服务器移动到我的生产服务器的应用程序。在这个应用程序中,我在auth.group中定义了3个自定义组,每个组都有特定的权限。在Django中迁移用户组和权限?

我试图从倾倒的auth.group数据 - 它似乎有权限的ID为好。问题是,这些ID在我的开发环境和生产环境之间不匹配。在auth.permission中似乎还有一个content_type_id,我不知道它是如何关联的。

我的问题是,是否有使用dumpdata或别的东西,迁移组和所有我的应用程序的相关权限的方式?我没有在生产服务器上导入多个灯具的一个问题,但我希望所有即将成立的团体,而无需经过用户界面,并选择每个组相应的权限。

回答

4

django.contrib.auth取决于django.contrib.contenttypes因为auth.models.Permission.content_typeForeignKey(ContentType)

解决方案:在您的数据添加的ContentType倾倒,即。 dumpdata使用以下参数:auth.group contenttypes.contenttype auth.permission

+0

确定。如果我这样做,我会收到内容类型的“pk”值。在我的其他默认数据夹具中,我清除了主键,因为它们对于那些特定的模型无关紧要。但是,在这种情况下,这将无法正常工作,因为权限似乎与内容类型相关,并且组又与权限相关联。如果我直接导​​入数据缓冲区,则会收到主键违例,因为我已经有一些主键。我怎样才能使这个通用性足以让我可以将它导入到已有数据的系统中? – NewGuy

+0

“如果我直接导​​入datadump,我收到主键冲突,因为我有一些主键已经到位。”这是不可能的:django插入或更新灯具。我注意到在我的答案中的参数顺序可以改进..你是否也尝试了这个顺序(ctypes之前许可)?但我不认为这很重要,因为Django试图禁用这些可能会阻止夹具导入的约束(即FK自己)。如果你粘贴回溯数据,数据转储等等,这会更容易... – jpic