我在多个数据库中使用Django。我有一个'预览'数据库,接受用户上传的消息,这些必须由管理员预览和'接受',在这一点上,他们提交到'默认'生产数据库。下面的视图应该这样做,但我得到了一个错误。每个NewEntenceModel都有一个指向每个newMessageSegment的外键,每个newMessageSegment都有一个指向每条消息的外键。如果管理员接受内容,我想将每个项目移动到新数据库,然后删除预览数据库中的旧条目。请帮忙!谢谢-
错误如下:
instance is on database "preview", value is on database "default"
错误消息出现在以下行:
^{pr2}$查看功能如下:
^{3}$
Django记得对象是用哪个数据库保存的,因此每个
newMessageSegment
仍然与preview
数据库关联,直到您将其保存到default
并且它正确地不允许跨数据库FK赋值。这是未经测试的,但它可以改为分配给底层的msg_id
字段:否则,您可以创建
newMessageSegment
的新副本,而不仅仅是创建对它的新引用。我认为您可以通过迭代msgSegment._meta.fields
来实现自动化,但我可能忽略了继承或其他方面的微妙之处。任何多对多的领域都是一种痛苦。在或者,如果你只是想破解它,编辑跟踪它的内部对象。我一般不建议这样做,但不管怎样,当你存钱的时候,它会被改变的。在
^{pr2}$相关问题 更多 >
编程相关推荐