summaryrefslogtreecommitdiff
path: root/django/db/models
AgeCommit message (Collapse)Author
2008-06-29Moved the settings of db_table to Options.contribute_to_class().Malcolm Tredinnick
Some fields need to know the right db_table setting in their own contribute_to_class(), so waiting until Options._prepare() is a little inconvenient. This is a deep-internals change. No effect on external code. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7777 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-27Removed a dead line that was left in [7773] by accident.Malcolm Tredinnick
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7774 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-27Reorganised the internals of the Where node a bit to fix some copying problems.Malcolm Tredinnick
We no longer store any reference to Django field instances or models in the Where node. This should improve cloning speed, fix some pickling difficulties, reduce memory usage and remove some infinite loop possibilities in odd cases. Slightly backwards incompatible if you're writing custom filters. See the BackwardsIncompatibleChanges wiki page for details. Fixed #7128, #7204, #7506. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7773 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed #7312 -- Fixed handling of custom Q-like objects in ↵Malcolm Tredinnick
QuerySet.custom_filter(). This is pretty much internal-use-only code, so doesn't affect public API at all, but it's nice to be able to handle things properly in any case. Patch from emulbreh. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7766 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26EmptyQuerySet classes can now be merged with normal querysets.Malcolm Tredinnick
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7765 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed the way symmetrical many-to-many relations are recorded in the Options ↵Malcolm Tredinnick
class. These types of relations don't have reverse accessor names, so that name can be used by a normal field on the model. Fixed #7107. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7764 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed #7105 -- Fixed dates() queries in light of model inheritance.Malcolm Tredinnick
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7763 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed #7215 -- Create correct reverse-relation accessors when using abstract ↵Malcolm Tredinnick
base classes. Patch from Joel Watts. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7762 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed #7181 -- when ordering by a potentially NULL field, use a left-outer joinMalcolm Tredinnick
so that the ordering doesn't accidentally restrict the result set. (Ironically, one existing test actually showed this problem, but I was too dumb to notice the result was incorrect.) git-svn-id: http://code.djangoproject.com/svn/django/trunk@7761 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed #7076 -- Include NULL values when excluding non-NULL items.Malcolm Tredinnick
Based on a patch from emulbreh. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7760 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed #7109 -- Quote certain values before passing them for substitution inMalcolm Tredinnick
Field.db_type(). This fixes a problem with using reserved words for field names in Oracle. Only affects Oracle at the moment, but the same changes could easily be used by other backends if they are required (requires changing creation.py, only). This commit also reverts [7501] so that if the fix doesn't work, it will show up in the tests (and if it does work, the tests will prevent us from breaking it again). git-svn-id: http://code.djangoproject.com/svn/django/trunk@7743 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Removed the bulk of the sanity checking when merging QuerySets.Malcolm Tredinnick
It was causing too many inconvenient and unintended problems when merging legitimate subclasses (e.g. with geo-django classes). There's still a hook there that we use when merging ValueQuerySets, but if you try to merge two disparate QuerySets and it breaks all that happens is you get to keep both pieces. We're no longer penalising the useful usages just for the people who aren't concentrating. Fixed #7113. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7742 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed a problem when constructing complex select_related() calls.Malcolm Tredinnick
Avoids joining with the wrong tables when connecting select_related() tables to the main query. This also leads to slightly more efficient (meaning less tables are joined) SQL queries in some other cases, too. Some unnecessary tables are now trimmed that were not previously. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7741 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-26Fixed a problem with values() and values_list() queries and nullable joins.Malcolm Tredinnick
Previously, if we were querying across a nullable join and then a non-nullable one, the second join would not be a LEFT OUTER join, which would exclude certain valid results from the result set. This is the same problem as [7597] but for values() field specifications, so this covers the second case where Django adds extra stuff to the select-clause. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7740 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-25Fixed #7155 -- Corrected DateQuerySet to handle nullable fields. Thanks to ↵Russell Keith-Magee
fcaprioli@alice.it for the original report and patch, and to Jeremy Dunck for the test case. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7739 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-21Fixed bug with Model.delete() which did not always delete objects in the ↵Luke Plant
right order. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7722 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-21Added tests for corner case with deleting where objects are deleted in the ↵Luke Plant
wrong order. These tests currently fail, by design, fix will be committed shortly. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7721 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-21Removed some unnecessary work in Model._collect_sub_objects()Luke Plant
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7720 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-17Fixed #7044 -- Corrected a minor typo in a docstring in the model loader. ↵Russell Keith-Magee
Thanks, msaelices. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7679 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-16Fixed #7420 -- Abstracted some more database options into DatabaseFeatures ↵Adrian Holovaty
-- supports_usecs, time_field_needs_date, interprets_empty_strings_as_nulls and date_field_supports_time_value -- and changed various hard-coded 'if DATABASE_BACKEND == oracle' statements to use the new options. Thanks to ramiro for the patch git-svn-id: http://code.djangoproject.com/svn/django/trunk@7643 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-15Fixed #7256 -- Corrected queryset code to return the correct set of columns ↵Russell Keith-Magee
when the query has an empty values() clause as well as extra selects from an extra() clause. Thanks to Nicolas Lara for the report and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7636 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-15Fixed #7387 - Fixed circular import problem when importing ↵Gary Wilson Jr
`contrib.contenttypes.generic` module. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7635 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-12Fixed #7026 -- Fixed misleading/incorrect exception text when adding to a ↵Adrian Holovaty
many-to-many set on an object that doesn't yet have a primary-key value. Thanks for the report, ryan@peaceworks.ca git-svn-id: http://code.djangoproject.com/svn/django/trunk@7622 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-12Negligible comment typo fixesAdrian Holovaty
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7620 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-09Fixed #7298: prevent update() on sliced QuerySet since UPDATE doesn't ↵Jacob Kaplan-Moss
reliably support LIMIT/OFFSET. Thanks, George Vilches. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7601 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-09Fixed #7350, #7202 -- Fixed serialization for multi-model inheritance, which ↵Russell Keith-Magee
had multiple problems: * Serializers were including all superclass fields in their output. Now only local fields are included. * Implicit OneToOne primary keys were not correctly added to the metamodel, so they were always marked to be serialized, even though they were primary * Model saving was too aggressive about creating new parent class instances during deserialization. Raw save on a model now skips saving of the parent class. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7600 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-08Fixed #7369: fixed a corner-case involving select_related() following ↵Jacob Kaplan-Moss
non-null FKs after null ones. Thanks, George Vilches git-svn-id: http://code.djangoproject.com/svn/django/trunk@7597 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-07Fixed #7342: Ignore any Meta options starting with '_', thus making it OK ↵Jacob Kaplan-Moss
for Meta to be a newstyle class. Thanks, Gulopine. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7585 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-06-05Fixed #6886: Tightened up ForeignKey and OneToOne field assignment. ↵Jacob Kaplan-Moss
Specifically: * Raise a ValueError if you try to assign the wrong type of object. * Raise a ValueError if you try to assign None to a field not specified with null=True. * Cache the set value at set time instead of just at lookup time. This is a slightly backwards-incompatible change; see BackwardsIncompatibleChanges for more details. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7574 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-05-29Fixed #7173 -- Corrected the caching of objects in reverse OneToOne ↵Russell Keith-Magee
relationships. Thanks, Travis Terry. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7561 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-05-29Fixed #7306 -- Added missing import. Thanks, SmileyChris.Russell Keith-Magee
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7556 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-05-13Fixed #7212 -- Added `alters_data` attribute to `Model.save_base` method, ↵Gary Wilson Jr
thanks Gulopine. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7526 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-29Fixed an Oracle error on double negations in where conditions. Fixed #7111Ian Kelly
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7509 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-29Undo [7474]. I didn't think it through nearly carefully enough.Malcolm Tredinnick
This means that all model construction now goes through the __init__() method again. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7504 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Changed Query.get_columns() to quote the 'AS' column names in an ↵Adrian Holovaty
extra_select situation, to match pre-queryset-refactor behavior. Added unit tests that verify this and provide an example git-svn-id: http://code.djangoproject.com/svn/django/trunk@7502 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Added the ability to pickle and unpickle QuerySets and Query classes.Malcolm Tredinnick
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7499 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28ValuesQuerySets (and subclasses) were inadvertently not caching their results.Malcolm Tredinnick
Fixed. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7497 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Made some types of nested update queries very slightly more efficient at theMalcolm Tredinnick
database level. Also worked around the fact that MySQL (and maybe other backends we don't know about) cannot select from the table they're updating. Fixed #7095. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7496 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Allow Query objects to be values in query filters. This already existed forMalcolm Tredinnick
relations, but not for normal fields. The latter comes up naturally in some update statements. Refs #7095 git-svn-id: http://code.djangoproject.com/svn/django/trunk@7494 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Fixed #7096 -- The simplifications in [7461] weren't complete. They brokeMalcolm Tredinnick
multi-component exclude() calls. Fixed that. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7493 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Fixed #7098 -- Old-style related-model order_by() syntax was being incorrectlyMalcolm Tredinnick
marked as erroneous. It's just more dangerous and risky, not forbidden. This commit restores backwards compatibility there. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7490 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Migrated _setup_query() docstring to AmericaAdrian Holovaty
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7488 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Fixed a bug with the new QuerySet update() method where it wasn't committing ↵Adrian Holovaty
the transaction (on Postgres, at least) git-svn-id: http://code.djangoproject.com/svn/django/trunk@7487 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-28Fixed #7097 -- dates() queries now work as expected with select_related() -- ↵Adrian Holovaty
that is, select_related() has no effect on the query. Thanks for reporting, Marco git-svn-id: http://code.djangoproject.com/svn/django/trunk@7486 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-27When retrieving a field by name, handle a missed case when the cache cannot beMalcolm Tredinnick
initialised yet. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7478 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-04-27Merged the queryset-refactor branch into trunk.Malcolm Tredinnick
This is a big internal change, but mostly backwards compatible with existing code. Also adds a couple of new features. Fixed #245, #1050, #1656, #1801, #2076, #2091, #2150, #2253, #2306, #2400, #2430, #2482, #2496, #2676, #2737, #2874, #2902, #2939, #3037, #3141, #3288, #3440, #3592, #3739, #4088, #4260, #4289, #4306, #4358, #4464, #4510, #4858, #5012, #5020, #5261, #5295, #5321, #5324, #5325, #5555, #5707, #5796, #5817, #5987, #6018, #6074, #6088, #6154, #6177, #6180, #6203, #6658 git-svn-id: http://code.djangoproject.com/svn/django/trunk@7477 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-03-25Fixed #6867 -- Added some missing DeprecationWarnings to ↵Adrian Holovaty
db.models.fields.related. Thanks, dcramer git-svn-id: http://code.djangoproject.com/svn/django/trunk@7362 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-03-20Fixed #6445 -- Allow model instances to be used as a default for ForeignKeysMalcolm Tredinnick
(via a callable). Also updates the documentation of the "default" attribute to indicate a callable can be used. Thanks, Philipe Raoult. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7331 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-03-19Fixed #5894: added FilePathField to newforms. Thanks, Alex Gaynor.Jacob Kaplan-Moss
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7323 bcc190cf-cafb-0310-a4f2-bffc1f526a37
2008-03-18Fixed #6641 -- If we lose a race when creating a new object in get_or_create,Malcolm Tredinnick
re-get the result from the database and return that. Thanks, Jeff Guinness and Timothée Peignier. git-svn-id: http://code.djangoproject.com/svn/django/trunk@7289 bcc190cf-cafb-0310-a4f2-bffc1f526a37