• <small id='MJDaO'></small><noframes id='MJDaO'>

        <bdo id='MJDaO'></bdo><ul id='MJDaO'></ul>
        <i id='MJDaO'><tr id='MJDaO'><dt id='MJDaO'><q id='MJDaO'><span id='MJDaO'><b id='MJDaO'><form id='MJDaO'><ins id='MJDaO'></ins><ul id='MJDaO'></ul><sub id='MJDaO'></sub></form><legend id='MJDaO'></legend><bdo id='MJDaO'><pre id='MJDaO'><center id='MJDaO'></center></pre></bdo></b><th id='MJDaO'></th></span></q></dt></tr></i><div id='MJDaO'><tfoot id='MJDaO'></tfoot><dl id='MJDaO'><fieldset id='MJDaO'></fieldset></dl></div>

        <tfoot id='MJDaO'></tfoot><legend id='MJDaO'><style id='MJDaO'><dir id='MJDaO'><q id='MJDaO'></q></dir></style></legend>

        如何在不同的数据库中使用带有外键的 django 模型?

        时间:2023-10-08
        <tfoot id='wU11E'></tfoot>

          <bdo id='wU11E'></bdo><ul id='wU11E'></ul>
        • <i id='wU11E'><tr id='wU11E'><dt id='wU11E'><q id='wU11E'><span id='wU11E'><b id='wU11E'><form id='wU11E'><ins id='wU11E'></ins><ul id='wU11E'></ul><sub id='wU11E'></sub></form><legend id='wU11E'></legend><bdo id='wU11E'><pre id='wU11E'><center id='wU11E'></center></pre></bdo></b><th id='wU11E'></th></span></q></dt></tr></i><div id='wU11E'><tfoot id='wU11E'></tfoot><dl id='wU11E'><fieldset id='wU11E'></fieldset></dl></div>

                  <tbody id='wU11E'></tbody>
              1. <small id='wU11E'></small><noframes id='wU11E'>

                • <legend id='wU11E'><style id='wU11E'><dir id='wU11E'><q id='wU11E'></q></dir></style></legend>
                • 本文介绍了如何在不同的数据库中使用带有外键的 django 模型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有 2 个模型用于 2 个不同的数据库:
                  数据库是手动创建的,但它应该没有任何改变.

                  I have 2 models for 2 different databases:
                  Databases were created manually but it should change nothing.

                  class LinkModel(models.Model): # in 'urls' database
                      id = models.AutoField(primary_key=True)
                      host_id = models.IntegerField()
                      path = models.CharField(max_length=255)
                  
                      class Meta:
                          db_table = 'links'
                          app_label = 'testapp'
                  
                      def __unicode__(self):
                          return self.path
                  
                  class NewsModel(models.Model):  # in default database
                      id = models.AutoField(primary_key=True)
                      title = models.CharField(max_length=50)
                      link = models.ForeignKey(LinkModel)
                  
                      class Meta:
                          db_table = 'news'
                          app_label = 'test'
                  
                      def __unicode__(self):
                          return self.title
                  

                  在以下代码之后出现错误

                  After the following code an error raises

                  newsItem, created = NewsModel.objects.get_or_create( title="test" )
                  link = LinkModel.objects.using('urls').get( id=1 )
                  newsItem.link = link  # error!
                  
                   Cannot assign "<LinkModel: />": instance is on database "default", value is on database "urls"
                  

                  为什么我不能为不同的数据库使用外键和模型?

                  Why can't I use foreign key and a model for different database?

                  推荐答案

                  跨数据库限制

                  Django 目前不支持跨多个数据库的外键或多对多关系.如果您使用路由器将模型分区到不同的数据库,则这些模型定义的任何外键和多对多关系都必须在单个数据库内部.

                  Cross-database limitations

                  Django doesn't currently provide any support for foreign key or many-to-many relationships spanning multiple databases. If you have used a router to partition models to different databases, any foreign key and many-to-many relationships defined by those models must be internal to a single database.

                  Django - limits-of-multiple-databases

                  同样的麻烦.ForeignKey() 类中的错误.

                  Same trouble. Bug in ForeignKey() class.

                  在 validate() 方法中.

                  In validate() method.

                  看票

                  Bug 存在于 v1.2、v1.3、v1.4rc1

                  Bug exists in v1.2, v1.3, v1.4rc1

                  尝试这个补丁来解决.

                  这篇关于如何在不同的数据库中使用带有外键的 django 模型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:截断 SQL Server 日志文件的命令是什么? 下一篇:在 Django 模型中指定一个 mySQL ENUM

                  相关文章

                  <i id='KgciU'><tr id='KgciU'><dt id='KgciU'><q id='KgciU'><span id='KgciU'><b id='KgciU'><form id='KgciU'><ins id='KgciU'></ins><ul id='KgciU'></ul><sub id='KgciU'></sub></form><legend id='KgciU'></legend><bdo id='KgciU'><pre id='KgciU'><center id='KgciU'></center></pre></bdo></b><th id='KgciU'></th></span></q></dt></tr></i><div id='KgciU'><tfoot id='KgciU'></tfoot><dl id='KgciU'><fieldset id='KgciU'></fieldset></dl></div>

                    <bdo id='KgciU'></bdo><ul id='KgciU'></ul>
                • <tfoot id='KgciU'></tfoot>

                  1. <legend id='KgciU'><style id='KgciU'><dir id='KgciU'><q id='KgciU'></q></dir></style></legend>
                    1. <small id='KgciU'></small><noframes id='KgciU'>