2011-06-08 62 views
2

有没有办法让syncdb忽略特定的表?Django的syncdb忽略特定的模型

我决定宣布一个M2M两次,因为我希望它从一个模型中看起来像一个简单的M2M,它可以与filter_horizo​​ntal一起使用。在另一个我添加了直通领域,并显示在内联。我使用db_table来使简单的表通过表使用相同的。这一切都很好,但在syncdb中,我总是在第一次运行时出错,因为它认为它必须创建表两次,但它已经第二次存在。在我开始测试创建测试数据库并失败之前,这不是问题。也许我只是一个白痴使用这个黑客。无论如何,要让Django忽略这个错误,或者指定不第二次通过表创建m2m?

+0

这是您的问题的创造性解决方案;我会给你的。但是,我认为你运气不好。你唯一可以做的就是猴子补丁syncdb管理命令,这不是一个好主意。也许你应该在你的问题中加入你实际想要达到的目标/为什么你要这样设置它。也许有人会有更好的想法如何实现这一点。 – 2011-06-08 16:58:44

+0

你可以在整个项目中重命名其中的一个吗?还是他们都从相同的数据中拉出来?这两种方式似乎都不是好的情况/设计,但我暂时没有太多的建议。 – 2011-06-08 18:54:41

+0

他们从相同的数据拉。在一个模型中获得横向过滤器并且在其他模型中使用通过域的内联是一件很快的事情。我知道我可以做到这一点更合适和耗时的方式,这正是我想要的只是一行代码。当然,如果它需要修补syncdb ......那么它可能比它的价值更重要。 – Bufke 2011-06-09 15:57:03

回答

2

我结束了使用模型元选项managed = False使syncdb忽略模型。然后使用initial sql data手动为表格创建sql。如果我可以告诉Django只有许多不需要管理的字段,我不需要编写自定义的SQL,但这是不能完成的。