summaryrefslogtreecommitdiff
path: root/django/db/models
AgeCommit message (Collapse)Author
2019-12-02[3.0.x] Fixed #30953 -- Made select_for_update() lock queryset's model when ↵Mariusz Felisiak
using "self" with multi-table inheritance. Thanks Abhijeet Viswa for the report and initial patch. Backport of 0107e3d1058f653f66032f7fd3a0bd61e96bf782 from master
2019-11-13[3.0.x] Fixed #30971 -- Prevented Query.resolve_lookup_value() from coercing ↵George Marshall
list values to tuples. Regression in 8a281aa7fe76a9da2284f943964a9413697cff1f. Backport of 8be79984dce7d819879a6e594ca69c5f95a08378 from master
2019-11-04[3.0.x] Fixed #30931 -- Restored ability to override Model.get_FIELD_display().Carlton Gibson
Thanks Sergey Fedoseev for the implementation idea. Regression in a68ea231012434b522ce45c513d84add516afa60. Backport of 2d38eb0ab9f78d68c083a5b78b1eca39027b279a from master
2019-10-25[3.0.x] Fixed #30902 -- Added __str__() for model choice enums.Carlton Gibson
Allows expected behavior when cast to str, also matching behaviour of created instances with those fetched from the DB. Thanks to Simon Charette, Nick Pope, and Shai Berger for reviews. Backport of dbcd7b064e7278614f29fc45468d461e263d4da7 from master
2019-10-11[3.0.x] Fixed #30854 -- Fixed QuerySet.select_related() with multiple ↵Hasan Ramezani
FilteredRelations. Backport of 6a75cea76a98c08bf2e20d787be9b14c2cd94860 from master.
2019-09-27[3.0.x] Fixed #30798 -- Fixed Meta.ordering validation for pk of related fields.Hasan Ramezani
Regression in 440505cb2cadbe1a5b9fba246bcde6c04f51d07e. Backport of 95a11578ce41de1e152fe7d173f109e280aebd6d from master
2019-09-27[3.0.x] Refs #30798 -- Prevented chaining fields from the same related model ↵Hasan Ramezani
multiple times in model Meta.ordering. Backport of c7944628a1979453468d67818c63957532d396d8 from master
2019-09-24[3.0.x] Fixed #30796 -- Prevented select_related() from mutating a queryset ↵Simon Charette
on chaining. Thanks Darren Maki for the report. Backport of 37f8f293775d0b672da8ae369d9a4e17f1db7851 from master
2019-09-23[3.0.x] Fixed #13296 -- Fixed ordering by Options.order_with_respect_to ↵Hasan Ramezani
after deleting objects. Thanks Simon Meers for the original patch. Backport of f97bbad908df128189eff77d98af9a25ed1ecf23 from master
2019-09-20[3.0.x] Fixed #30771 -- Fixed exact lookup against queries with selected ↵James Timmins
columns. Use pre-existing select fields (and thereby GROUP BY fields) from subquery if they were specified, instead of always defaulting to pk. Thanks Aur Saraf for the report and Simon Charette for guidance. Backport of 0719edcd5fed56157ffb3323a8f634aa5e8f9a80 from master
2019-09-10Fixed #30754 -- Prevented inclusion of aliases in partial index conditions.Simon Charette
SQLite doesn't repoint table aliases in partial index conditions on table rename which breaks the documented table alteration procedure. Thanks Pēteris Caune for the report.
2019-09-09Fixed #28107 -- Added ↵Vojtech Bocek
DatabaseFeatures.allows_group_by_selected_pks_on_model() to allow enabling optimization for unmanaged models.
2019-09-09Refs #29444 -- Allowed returning multiple fields from INSERT statements on ↵Johannes Hoppe
PostgreSQL. Thanks Florian Apolloner, Tim Graham, Simon Charette, Nick Pope, and Mariusz Felisiak for reviews.
2019-09-09Fixed #30757 -- Added a system check to ensure max_length fits the longest ↵Nick Pope
choice.
2019-09-04Fixed #27910 -- Added enumeration helpers for use in Field.choices.Shai Berger
These classes can serve as a base class for user enums, supporting translatable human-readable names, or names automatically inferred from the enum member name. Additional properties make it easy to access the list of names, values and display labels. Thanks to the following for ideas and reviews: Carlton Gibson, Fran Hrženjak, Ian Foote, Mariusz Felisiak, Shai Berger. Co-authored-by: Shai Berger <shai@platonix.com> Co-authored-by: Nick Pope <nick.pope@flightdataservices.com> Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-09-02Fixed #30739 -- Fixed exclusion of multi-valued lookup against outer rhs.Simon Charette
OuterRef right hand sides have to be nested, just like F rhs have to, during the subquery pushdown split_exclude performs to ensure they are resolved against the outer query aliases.
2019-09-02Refs #28442 -- Adjusted related lookups handling of expression rhs.Simon Charette
Expressions should never be prepared as other Lookup.get_prep_lookup implementations hint at by returning early on the presence of the resolve_expression attribute. The previous solution was only handling lookups against related fields pointing at AutoFields and would break for foreign keys to other fields. It was also causing bidirectional coupling between model fields and expressions which the method level import of OuterRef was a symptom of.
2019-08-29Refs #25367 -- Simplified OrderBy and Lookup by using Case() instead of ↵Mariusz Felisiak
RawSQL() on Oracle. Follow up to efa1908f662c19038a944129c81462485c4a9fe8.
2019-08-29Fixed #25367 -- Allowed boolean expressions in QuerySet.filter() and exclude().Matthew Schinckel
This allows using expressions that have an output_field that is a BooleanField to be used directly in a queryset filters, or in the When() clauses of a Case() expression. Thanks Josh Smeaton, Tim Graham, Simon Charette, Mariusz Felisiak, and Adam Johnson for reviews. Co-Authored-By: NyanKiyoshi <hello@vanille.bid>
2019-08-27Fixed #30727 -- Made Subquery pickle without evaluating their QuerySet.Andrew Brown
Subquery expression objects, when pickled, were evaluating the QuerySet objects saved in its _constructor_args attribute.
2019-08-21Fixed #21039 -- Added AddIndexConcurrently/RemoveIndexConcurrently ↵Mads Jensen
operations for PostgreSQL. Thanks to Simon Charettes for review. Co-Authored-By: Daniel Tao <daniel.tao@gmail.com>
2019-08-20Fixed #29979, Refs #17337 -- Extracted AutoField field logic into a mixin ↵Nick Pope
and refactored AutoFields. This reduces duplication by allowing AutoField, BigAutoField and SmallAutoField to inherit from IntegerField, BigIntegerField and SmallIntegerField respectively. Doing so also allows for enabling the max_length warning check and minimum/maximum value validation for auto fields, as well as providing a mixin that can be used for other possible future auto field types such as a theoretical UUIDAutoField.
2019-08-19Fixed #29260 -- Skipped an UPDATE when adding a model instance with primary ↵Hasan Ramezani
key that has a default.
2019-08-18Refs #28428 -- Made FileField.upload_to support pathlib.Path.Claude Paroz
2019-08-17Fixed #29545 -- Fixed using filter lookups againts nested subquery expressions.Simon Charette
Made sql.Where resolve lhs of its child nodes. This is necessary to allow filter lookups against nested subquery expressions to properly resolve their OuterRefs to Cols. Thanks Oskar Persson for the simplified test case.
2019-08-16Fixed #30687 -- Fixed using of OuterRef() expressions in distance lookups.Andrew Brown
2019-08-15Fixed #30449 -- Fixed RelatedFieldListFilter/RelatedOnlyFieldListFilter to ↵zeyneloz
respect model's Meta.ordering. Regression in 6d4e5feb79f7eabe8a0c7c4b87f25b1a7f87ca0b. Co-Authored-By: Mariusz Felisiak <felisiak.mariusz@gmail.com>
2019-08-14Optimized Field.deconstruct() by using elif.Mads Jensen
2019-08-13Refs #25367 -- Moved Oracle Exists() handling to contextual methods.Simon Charette
Oracle requires the EXISTS expression to be wrapped in a CASE WHEN in the following cases. 1. When part of a SELECT clause. 2. When part of a ORDER BY clause. 3. When compared against another expression in the WHERE clause. This commit moves the systematic CASE WHEN wrapping of Exists.as_oracle to contextual .select_format, Lookup.as_oracle, and OrderBy.as_oracle methods in order to avoid unnecessary wrapping.
2019-08-13Refs #25367 -- Moved select_format hook to BaseExpression.Simon Charette
This will expose an intermediary hook for expressions that need special formatting when used in a SELECT clause.
2019-08-12Refs #24793 -- Removed bogus connection argument from SQLCompiler.compile() ↵Simon Charette
calls. The method doesn't expect a connection object to be passed as its second argument.
2019-08-12Refs #11964 -- Made constraint support check respect required_db_features.Simon Charette
This will notably silence the warnings issued when running the test suite on MySQL.
2019-08-05Fixed #28393 -- Added helpful error messages for invalid ↵Diederik van der Boor
AutoField/FloatField/IntegerField values. Co-authored-by: Diederik van der Boor <vdboor@edoburu.nl> Co-authored-by: Nick Pope <nick.pope@flightdataservices.com>
2019-08-02Fixed #30668 -- Made QuerySet.filter() raise NotSupportedError if any of ↵aaktsipetrov
source expressions is not filterable.
2019-08-02Fixed #30661 -- Added models.SmallAutoField.Nick Pope
2019-07-31Fixed #30665 -- Added support for distinct argument to Avg() and Sum().Étienne Beaulé
2019-07-27Refs #28147 -- Fixed setting of OneToOne and Foreign Key fields to None when ↵Jon Dufresne
using attnames. Regression in 519016e5f25d7c0a040015724f9920581551cab0.
2019-07-25Added Query.is_sliced property.Mariusz Felisiak
Previously, we used Query.can_filter() mainly to check if a query is sliced what was confusing.
2019-07-25Fixed #27995 -- Added error messages on unsupported operations following ↵Hasan Ramezani
union(), intersection(), and difference().
2019-07-25Fixed #30657 -- Allowed customizing Field's descriptors with a ↵Jon Dufresne
descriptor_class attribute. Allows model fields to override the descriptor class used on the model instance attribute.
2019-07-25Refs #30657 -- Made DeferredAttribute.__init__() to take a field instance ↵Jon Dufresne
instead of a field name.
2019-07-23Improved error message when index in __getitem__() is invalid.Jon Dufresne
2019-07-23Removed unnecessary code in Model.__init__().Jon Dufresne
As is_related_object is True, the val variable is unused for the remainder of the method. Unnecessary since 53da1e47942f22a56e761d786ba89d05ca55a224.
2019-07-12Fixed #30602 -- Made Extract raise ValueError when using unsupported lookups ↵Hasan Ramezani
for DurationField.
2019-07-11Refs #30557 -- Fixed crash of ordering by ptr fields when Meta.ordering ↵Mariusz Felisiak
contains F() expressions. Thanks Can Sarıgöl for the report. Follow up to 8c5f9906c56ac72fc4f13218dd90bdf9bc8a248b.
2019-07-11Fixed #30557 -- Fixed crash of ordering by ptr fields when Meta.ordering ↵Hasan Ramezani
contains expressions.
2019-07-11Fixed #28289 -- Fixed crash of RawSQL annotations on inherited model fields.can
2019-07-10Fixed #30628 -- Adjusted expression identity to differentiate bound fields.Simon Charette
Expressions referring to different bound fields should not be considered equal. Thanks Julien Enselme for the detailed report. Regression in bc7e288ca9554ac1a0a19941302dea19df1acd21.
2019-07-08Fixed #30397 -- Added app_label/class interpolation for names of indexes and ↵can
constraints.
2019-07-08Refs #29444 -- Added support for fetching a returned non-integer insert ↵Johannes Hoppe
values on Oracle. This is currently not actively used, since the ORM will ask the SQL compiler to only return auto fields.