#16187: Refactor lookup system
-------------------------------------+-------------------------------------
     Reporter:  UloPe                |                    Owner:  akaariai
         Type:                       |                   Status:  assigned
  Cleanup/optimization               |                  Version:  master
    Component:  Database layer       |               Resolution:
  (models, ORM)                      |             Triage Stage:  Accepted
     Severity:  Normal               |      Needs documentation:  0
     Keywords:                       |  Patch needs improvement:  1
    Has patch:  1                    |                    UI/UX:  0
  Needs tests:  0                    |
Easy pickings:  0                    |
-------------------------------------+-------------------------------------

Comment (by akaariai):

 I have done another implementation of custom lookups. I intentionally did
 *not* implement support for using nested lookups outside of filtering.
 That is `.order_by('datefield__year')` isn't supported. The reason for
 this decision is that implementing that in one go leads to a huge patch
 (the previous try was nearing 2000 lines of ORM code changes).

 I think the code portions of the patch are actually pretty much ready. The
 biggest things are adding deprecation warnings for old-style lookups, and
 ensuring Django doesn't use those anywhere. In addition admin needs some
 work so that custom lookups are usable in admin, too. There is some code
 messiness inside sql/query.py due to the support for both old-style and
 new-style lookups. I don't think that needs to be cleaned up before
 deprecation removal.

 The current work is available from
 https://github.com/akaariai/django/compare/lookups_3. The docs additions
 contain examples of how to write custom lookups and extracts.

 The API feels correct to me now. 3rd party backends can customize SQL as
 needed, and writing simple extracts is straightforward. Complex cases can
 be handled, too. The docs of course need a lot of rewriting. But I am
 hopeful that we can get this into Django soon. Please help by testing the
 branch!

-- 
Ticket URL: <https://code.djangoproject.com/ticket/16187#comment:34>
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/063.d258fac8c07a5957684ed7dacf8c9e8f%40djangoproject.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to