1
0
mirror of https://github.com/django/django.git synced 2025-07-05 10:19:20 +00:00

4069 Commits

Author SHA1 Message Date
Malcolm Tredinnick
014373b459 queryset-refactor: Fixed #6664. Calling list() no longer swallows field errors.
This is slightly backwards incompatible with previous behaviour if you were
doing Tricky Stuff(tm) -- the exception type has changed if you try to create a
bad queryset.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7163 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-27 00:44:44 +00:00
Malcolm Tredinnick
fc4c0f7b39 queryset-refactor: Removed some unused code left over from an earlier attempt.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7162 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-27 00:43:40 +00:00
Malcolm Tredinnick
3691613093 queryset-refactor: Added a test to show that #6180 is fixed. Refs #6180.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7154 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-25 06:17:16 +00:00
Malcolm Tredinnick
bdeba9ab94 queryset-refactor: Merged from trunk up to [7151].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7152 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-23 09:26:11 +00:00
Malcolm Tredinnick
cbd6da3540 queryset-refactor: Added valuelist() method to querysets. Refs #2482.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7149 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-23 03:36:38 +00:00
Malcolm Tredinnick
6ad9c684aa queryset-refactor: Implemented the reverse() method on querysets.
Refs #5012.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7148 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-23 01:35:34 +00:00
Malcolm Tredinnick
7355fa6b72 queryset-refactor: Implemented slicing to end of querysets.
Refs #2150, #5012.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7147 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-23 01:34:49 +00:00
Malcolm Tredinnick
e2f524ca09 queryset-refactor: Fixed the case of calling update() on a model manager.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7146 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-23 00:23:57 +00:00
Malcolm Tredinnick
e2b3c50cf0 queryset-refactor: Removed some tuple unpacking in a function signature.
This isn't going to be permitted in Python 3, so might as well not use it here.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7144 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-22 05:46:46 +00:00
Malcolm Tredinnick
83e00a2371 queryset-refactor: Whilst writing a test to bullet-proof [7141], a bug showed up.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7143 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-22 04:58:53 +00:00
Malcolm Tredinnick
b7be3d63e3 queryset-refactor: Added the ability to manually specify a child-parent link.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7142 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-22 04:58:28 +00:00
Malcolm Tredinnick
0c20e88e65 queryset-refactor: Fixed up and documented Meta-class inheritance.
Should be mostly logical (for versions of "logical" that may require you to be
a Vulcan, admittedly, but that's not entirely my fault).


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7141 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-22 01:05:05 +00:00
Malcolm Tredinnick
ca123b0760 queryset-refactor: Fixed a couple of FIXME items.
These are mostly code cleanups, although now we also install the right type of
class for our exception sublasses on models in Python 2.5.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7137 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-20 02:00:20 +00:00
Malcolm Tredinnick
3dd28bd566 queryset-refactor: Merged from turnk up to [7135] because I need some stuff.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7136 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-20 01:59:59 +00:00
Malcolm Tredinnick
da6570bf08 queryset-refactor: Model inheritance support.
This adds both types of model inheritance: abstract base classes (ABCs) and
multi-table inheritance. See the documentation and tests / examples for details.

Still a few known bugs here, so don't file tickets (I know about them). Not
quite ready for prime-time usage, but it mostly works as expected.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7126 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-17 18:47:57 +00:00
Malcolm Tredinnick
2d0588548e queryset-refactor: Merged from trunk up to [7122].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7124 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-16 06:57:52 +00:00
Malcolm Tredinnick
770d587314 queryset-refactor: Two files were missed during the latest merge from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7123 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-16 06:56:10 +00:00
Malcolm Tredinnick
748e1bdf42 queryset-refactor: Merged from trunk up to [7098] (because I need the last
commit on this branch).


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7099 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-08 12:23:34 +00:00
Malcolm Tredinnick
accc20d799 queryset-refactor: Fixed up OneToOneFields (mostly).
They now share as much code as possible with ForeignKeys, but behave more or
less as they did before (the backwards incompatible change is that they are no
longer automatically primary keys -- so more than one per model is permitted).

The documentation still uses an example that is better suited to model
inheritance, but that will change in due course. Also, the admin interface
still shows them as read-only fields, which is probably wrong now, but that can
change on newforms-admin after this branch is merged into trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7096 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-08 09:49:17 +00:00
Malcolm Tredinnick
55cd025670 queryset-refactor: Fixed a place where admin was poking about under the covers and I had moved the internal feature it was relying on.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7095 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-08 04:22:00 +00:00
Malcolm Tredinnick
755bb2a3f2 queryset-refactor: Added (back) in support for using strings in slices.
Apparently there exists code that like to do this, including the admin
interface.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7094 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-08 04:21:39 +00:00
Malcolm Tredinnick
0a07dac880 queryset-refactor: Removed handle_legacy_orderlist() call from admin. Refs #245.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7093 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-08 04:21:21 +00:00
Malcolm Tredinnick
c23436be59 queryset-refactor: Removed another FIXME.
This time, simplifying the delete() method.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7092 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-06 04:10:58 +00:00
Malcolm Tredinnick
04a55d663f queryset-refactor: Fixed a typo that's been hiding out for a few months.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7088 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-04 12:05:01 +00:00
Malcolm Tredinnick
5df5551d07 queryset-refactor: Moved some backend-specific features into the database
backend code.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7087 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-04 12:02:36 +00:00
Malcolm Tredinnick
0a9b751958 queryset-refactor: Merged changes from trunk up to [7085].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7086 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-02-04 05:45:17 +00:00
Malcolm Tredinnick
a4343209db queryset-refactor: s/udpate/update. :-(
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7049 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-29 15:49:43 +00:00
Malcolm Tredinnick
f99247cc1b queryset-refactor: Ported almost all of the raw SQL statements in the Model
class over to use queryset operations. This is the first part of a long process
of removing raw SQL from all over the place. The tests pass, but it's quite
possible other stuff won't work yet.

In the process, added tests for order_with_respect_to so that I didn't screw it
up.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7048 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-29 15:44:21 +00:00
Malcolm Tredinnick
a214c6b86a queryset-refactor: Added some error checking for a potential crasher if model ordering is set up in a cycle somehow. The error reporting here isn't perfect (it doesn't give any hints about what the infinite loop might be), but it's better than nothing.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7046 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-28 16:08:34 +00:00
Malcolm Tredinnick
3c490660c5 queryset-refactor: Fixed an idiotic, last-minute typo in [7043].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7045 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-28 16:08:06 +00:00
Malcolm Tredinnick
de94d0cb93 queryset-refactor: Added an update method to QuerySets, since it's needed for
moving SQL out of the core code. Only direct fields and foreign keys can be
updated in this fashion, since multi-table updates are very non-portable.

This also cleans up the API for the UpdateQuery class a bit. Still need to
change DeleteQuery to work similarly, I suspect.

Refs #4260.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7043 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-28 14:27:53 +00:00
Malcolm Tredinnick
911e65ada7 queryset-refactor: Added a way to clear all default ordering from a queryset,
by calling order_by() with no parameters.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7042 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-28 14:27:16 +00:00
Malcolm Tredinnick
e016a4f987 queryset-refactor: Added the ability to use a subclass of WhereNode in queries. Also allow extension of the permitted lookup terms. Both of these are drive by geo-django requirements, but should be generally useful. Thanks, Justin Bronn.
Fixed #6261.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7031 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-27 11:17:33 +00:00
Malcolm Tredinnick
dd2251a653 queryset-refactor: Converted the queryset iterator to be a real iterator and
only populate the result cache on demand. We actually populate the result cache
100 elements at a time, rather than one at a time for efficiency, but this is a
real win when the resultset contains 10,000 objects for example.

This also provides an efficient boolean (__nonzero__) test that doesn't use up
a lot of memory if you don't read all the results.

Refs #2430, #5987.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7030 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-26 13:23:54 +00:00
Malcolm Tredinnick
98abf27535 queryset-refactor: Merged from trunk up to [7025].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7029 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-26 13:23:25 +00:00
Malcolm Tredinnick
83cb2218bc queryset-refactor: Merged from trunk up to [7002].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7004 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-01-09 06:08:40 +00:00
Malcolm Tredinnick
b824d803ce queryset-refactor: Added a couple of tests to demonstrate table handling in order_by() situations. One is known to fail (and commented out for now).
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6968 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-22 11:16:21 +00:00
Malcolm Tredinnick
e247b36447 queryset-refactor: Work around the fact that "where id is NULL" can return different results in different circumstances in MySQL(!!).
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6967 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-22 11:16:04 +00:00
Malcolm Tredinnick
f47cfe12ae queryset-refactor: Tweaked one test slightly to work around a PostgreSQL oddity.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6962 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 13:43:16 +00:00
Malcolm Tredinnick
7292cc8d60 queryset-refactor: Reverted [6762] because it generates invalid SQL. It only worked accidentally with SQLite.
Refs #4002.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6961 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 13:06:45 +00:00
Malcolm Tredinnick
4dc766c9e1 queryset-refactor: Tweaked quote_name_if_not_alias() slightly.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6960 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 13:06:16 +00:00
Malcolm Tredinnick
470ddafe97 queryset-refactor: Made qs.dates(...).count() work.
This involved a slight change in the SQL for .dates() which appears to be
correct and passes all the tests, but may have some side-effect I don't know
about.

Refs #6203.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6959 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 12:23:59 +00:00
Malcolm Tredinnick
18adbb6363 queryset-refactor: Fixed the way join promotions are done when joining queries (particularly the disjunctive -- 'OR' -- case). This fixes a FIXME and produces better queries.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6958 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 10:58:26 +00:00
Malcolm Tredinnick
519178154b queryset-refactor: Fixed a problem when adding certain additional filters to a queryset that has precisely one filter attached already.
Refs #6154.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6957 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 10:57:54 +00:00
Malcolm Tredinnick
97091940b1 queryset-refactor: Merged from trunk up to [6953].
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6954 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-19 05:08:37 +00:00
Malcolm Tredinnick
13d3162aaf queryset-refactor: Added a test to show that various Q() combinations work when the same field with different lookup types are combined. Refs #4289.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6901 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-09 08:01:26 +00:00
Malcolm Tredinnick
3064a211bf queryset-refactor: Allow specifying of specific relations to follow in
select_related(). Refs #5020.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6899 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-09 06:24:17 +00:00
Malcolm Tredinnick
3dce17ddc4 queryset-refactor: Fixed a couple of differences between trunk and this branch that were caused by merge errors.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6896 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-05 09:40:16 +00:00
Malcolm Tredinnick
0d7b6884df queryset-refactor: Added a FIXME for something I just remembered.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6869 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-03 21:23:15 +00:00
Malcolm Tredinnick
8e6126fbc2 queryset-refactor: Fixed disjunctions of empty result sets. Refs #6074.
git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6868 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2007-12-03 21:10:55 +00:00