#28107: Can't perform annotation on related table when relation between tables 
not
on primary key
-------------------------------------+-------------------------------------
     Reporter:  powderflask          |                    Owner:  nobody
         Type:  Uncategorized        |                   Status:  new
    Component:  Database layer       |                  Version:  1.11
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  QuerySet.extra       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by powderflask):

 * status:  closed => new
 * resolution:  worksforme =>


Comment:

 OK - that's got it.  Yep -- this issues occurs when at least one of the
 models in the aggregation query is un-managed and backed by a DB view
 rather than a table.

 Attached is a zip of a simple django app that runs in a default django
 container,  demonstrates the issue:

 1) Demonstrate these weird relations work with models backed by DB tables:
  -  {{{ INSTALLED_APPS = [ 'issue28107.apps.Issue28107Config', ... ] }}}
  - configure / create postgre DB,
  - manage.py migrate
  - run the unit-test -- it should pass

 2) Replace table with view (created by migrations)
   - in models.py, remove 2 comments from Treatment.Meta:
 {{{
         managed = False
         db_table = 'issue28107_treatment_vw'

 }}}
  - re-run unit-test -- it should fail:
 {{{ column "issue28107_treatment_vw.globalid" must appear in the GROUP BY
 clause or be used in an aggregate function }}}

 This is a backwards-compatibility issue -- this worked at least up to
 django1.8

 I have no idea where to begin with this in terms of suggesting a patch --
 any pointers?
 thank you for the quick reply and suggestions -- awesome.

--
Ticket URL: <https://code.djangoproject.com/ticket/28107#comment:6>
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/069.0ae359029e269da6cad39aa26e7b0c0a%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to