On Thu, Mar 24, 2011 at 3:23 PM, dy <yang.den...@gmail.com> wrote: > Hi django devs, > > I have two models and need to store to different dbs.I want this field > to be a > foreign key from Test2, stored on the "test2" database, to the Test1 > model stored on the "default" database.The codes are: > > # model in app test1,store to default > class Test1(models.Model): > name = models.CharField(max_length=30,verbose_name="name") > class Meta: > verbose_name = "test1" > verbose_name_plural = "test1" > def __unicode__(self): > return self.name > # model in app test2,store to test2 > class Test2(models.Model): > name = models.CharField(max_length=30,verbose_name="test2") > test1 = > models.ForeignKey('test1.Test1',verbose_name="FK_test1",blank=True,null=Tru > e) > class Meta: > verbose_name = "test2" > verbose_name_plural = "test2" > def __unicode__(self): > return self.name > > # my dbrouter > #The code is written in the root directory of the __init__.py file > class MyDBRouter(object): > def db_for_read(self, model, **hints): > return self.__app_router(model) > def db_for_write(self, model, **hints): > return self.__app_router(model) > def allow_relation(self, obj1, obj2, **hints): > #return obj1._meta.app_label == obj2._meta.app_label > return True > def allow_syncdb(self, db, model): > return self.__app_router(model) == db > def __app_router(self, model): > # Can also be written like this,it also works well > # if model.__name__ == 'Test2': > if model._meta.app_label == 'test2': > return 'test2' > else: > return 'default' > > # at last,my settings > DATABASES = { > 'default': { > 'ENGINE': 'mysql', > 'NAME': 'test1', > 'USER': 'root', > 'PASSWORD': 'root', > 'HOST': '', > 'PORT': '3306', > }, > 'test2': { > 'ENGINE': 'mysql', > 'NAME': 'test2', > 'USER': 'root', > 'PASSWORD': 'root', > 'HOST': '', > 'PORT': '3306', > } > } > DATABASE_ROUTERS = ['my_project_name.MyDBRouter',] > > Questions: > All of these code work well on django 1.2.3,but once I use django > 1.2.5 or 1.3 rc1,It does not work and have same exception.The > exception information is: > DatabaseError at /admin/test2/test2/add/ > (1146, "Table 'test1.test2_test2' doesn't exist") > Request Method: POST > Request URL: http://192.168.1.111/admin/test2/test2/add/ > Django Version: 1.3 rc 1 > Exception Type: DatabaseError > Exception Value: > (1146, "Table 'test1.test2_test2' doesn't exist") > Exception Location: build/bdist.linux-i686/egg/MySQLdb/ > connections.py > in defaulterrorhandler, line 36 > Python Executable: /usr/local/bin/python > Python Version: 2.6.5 > Python Path: > ['/root/testadmin', > '/usr/local/lib/python2.6/site-packages/setuptools-0.6c11- > py2.6.egg', > '/usr/local/lib/python2.6/site-packages/MySQL_python-1.2.3-py2.6- > linux-i686.egg', > '/usr/local/lib/python26.zip', > '/usr/local/lib/python2.6', > '/usr/local/lib/python2.6/plat-linux2', > '/usr/local/lib/python2.6/lib-tk', > '/usr/local/lib/python2.6/lib-old', > '/usr/local/lib/python2.6/lib-dynload', > '/usr/local/lib/python2.6/site-packages'] > But the most strange thing is that:use the following command: > python manage.py syncdb > python manage.py syncdb --database='test2' > I can create table correctly in different database,also on django > 1.2.5 or 1.3 rc1,I do not know whether other people come across this > problem.I also compared the differences between the different > versions > of the django source codes about this feature,but did not find > problems. > > I wonder to know is this a bug of django1.2.3?Or this feature can be > used > in django-1.2.3, but why i can't use it at a higher version.
How many times do we need to give you the answer? A core developer (myself) and a BDFL (Jacob) both answered this question on django-users. The answer hasn't changed in the last couple of hours. Yours, Russ Magee %-) -- You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com. To unsubscribe from this group, send email to django-developers+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-developers?hl=en.