Hi, Interesting. What version of django is this?
Here's something to try: Room.objects.using('another').select_related('hotel').get(pk=10) It could very well be an issue with GeoManager / GeoQuerySet. You also could ask on the geodjango list to see if anyone else has run into that. http://groups.google.com/group/geodjango Collin On Wednesday, February 18, 2015 at 9:45:15 AM UTC-5, Luan Nguyen wrote: > > I'm using geodjango and multiple databases, and experiencing a quite weird > situation, I guess it's a kind of bug but not absolutely sure since I'm > pretty new to Django. > > Here is how to reproduce the problem: > - Set up another database besides default: > DATABASES = { > 'default': { > 'ENGINE' : 'django.contrib.gis.db.backends.postgis' > <http://django.contrib.gis.db.backends.postgis%27/>, > 'NAME' : 'issue1', > 'USER' : 'user', > 'PASSWORD' : 'password', > 'HOST' : '127.0.0.1', > 'OPTIONS' : { > 'autocommit' : True, > } > }, > 'another': { > 'ENGINE' : 'django.contrib.gis.db.backends.postgis' > <http://django.contrib.gis.db.backends.postgis%27/>, > 'NAME' : 'issue2', > 'USER' : 'user', > 'PASSWORD' : 'password', > 'HOST' : '127.0.0.1', > 'OPTIONS' : { > 'autocommit' : True, > } > }, > } > > And two models: > from django.db import models as default_models > from django.contrib.gis.db import models > # Create your models here. > class Hotel(models.Model): > hotel_name = models.CharField(max_length=255) > objects = models.GeoManager() > > class Room(models.Model): > room_num = models.IntegerField() > hotel = models.ForeignKey(Hotel, null=True, blank=True) > > Add data into issue2 database (leave issue1 blank), then go into shell: > >>>h = Hotel.objects.using('another').all()[0] > >>> h.id > 9 > >>>h.room_set.all()[0].id #=> room id 10 links to hotel id 9 > 10 > >>>r = Room.objects.using('another').get(pk=10) > >>>r.hotel > Traceback (most recent call last): > File "<console>", line 1, in <module> > File "/ > Applications/MAMP/htdocs/Rainmaker/vir341/lib/python3.4/site-packages/django/db/models/fields/related.py > > <http://applications/MAMP/htdocs/Rainmaker/vir341/lib/python3.4/site-packages/django/db/models/fields/related.py>", > > line 572, in __get__ > rel_obj = qs.get() > File "/ > Applications/MAMP/htdocs/Rainmaker/vir341/lib/python3.4/site-packages/django/db/models/query.py > > <http://applications/MAMP/htdocs/Rainmaker/vir341/lib/python3.4/site-packages/django/db/models/query.py>", > > line 357, in get > self.model._meta.object_name) > multi.models.DoesNotExist: Hotel matching query does not exist. > > The thing is, if I create a hotel record on database issue1 with id of 9 > then the last command works, so I guess it tried to look up in default > database. This doesn't have any problems if I use default manager for > Hotel, so I guess it's a bug? > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/64d0f22e-ce10-4626-beef-5f99c63de787%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.