#25615: multidb Relation fields do not support nested lookups
-------------------------------------+-------------------------------------
     Reporter:  gerdkoetje           |                    Owner:  nobody
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  1.8
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:  needsinfo
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------

Old description:

> Does anyone know why i can't do any relation lookups on any database
> other then the default database in 1.8.5 this worked fine in 1.6.1. It
> keeps telling me: `Relation fields do not support nested lookups`.
>
> for example on
> `adds =
> ProfielenFlirts.objects.filter(voor__user__profielenuserprofile__fictief=True).filter(Q(antwoord='')
> | Q(antwoord__isnull=True)).count()`
>
> ProfielenFlirts is a non default database, the relation lookup is in the
> same database do.
>

> my router
> {{{
> class DatingRouter(object):
>     def db_for_read(self, model, **hints):
>         if model._meta.app_label == 'datingmodels':
>             return 'dating'
>         return 'default'
>
>     def db_for_write(self, model, **hints):
>         if model._meta.app_label == 'datingmodels':
>             return 'dating'
>         return 'default'
>
>     def allow_relation(self, obj1, obj2, **hints):
>         if obj1._meta.app_label == 'datingmodels' and
> obj2._meta.app_label == 'datingmodels':
>             return True
>         elif 'datingmodels' not in [obj1._meta.app_label,
> obj2._meta.app_label]:
>             return True
>         return False
>
>     def allow_syncdb(self, db, model):
>         if db == 'dating' or model._meta.app_label == "datingmodels":
>             return False # we're not using syncdb on our legacy database
>         else: # but all other models/databases are fine
>             return True
> }}}

New description:

 He all,

 Does anyone know why i can't do any relation lookups on any database other
 then the default database in 1.8.5 this worked fine in 1.6.1
 it keeps trowing me: Relation fields do not support nested lookups

 for example on
 adds =
 
ProfielenFlirts.objects.filter(voor__user__profielenuserprofile__fictief=True).filter(Q(antwoord='')
 | Q(antwoord__isnull=True)).count()

 ProfielenFlirts is a non default database, the relation lookup is in the
 same database do.


 my router
 class DatingRouter(object):
     def db_for_read(self, model, **hints):
         if model._meta.app_label == 'datingmodels':
             return 'dating'
         return 'default'

     def db_for_write(self, model, **hints):
         if model._meta.app_label == 'datingmodels':
             return 'dating'
         return 'default'

     def allow_relation(self, obj1, obj2, **hints):
         if obj1._meta.app_label == 'datingmodels' and obj2._meta.app_label
 == 'datingmodels':
             return True
         elif 'datingmodels' not in [obj1._meta.app_label,
 obj2._meta.app_label]:
             return True
         return False

     def allow_syncdb(self, db, model):
         if db == 'dating' or model._meta.app_label == "datingmodels":
             return False # we're not using syncdb on our legacy database
         else: # but all other models/databases are fine
             return True

 any help would be appriciated

--

Comment (by gerdkoetje):

 test project proving this issue
 https://github.com/gerdkoetje/dualdbtest

--
Ticket URL: <https://code.djangoproject.com/ticket/25615#comment:4>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/068.4d6b356cd950eda2e2cee3ab3aa4ded2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to