1
0
mirror of https://github.com/django/django.git synced 2025-05-05 14:37:31 +00:00

410 Commits

Author SHA1 Message Date
Hasan Ramezani
0dc39ca867 [3.0.x] Fixed #30798 -- Fixed Meta.ordering validation for pk of related fields.
Regression in 440505cb2cadbe1a5b9fba246bcde6c04f51d07e.

Backport of 95a11578ce41de1e152fe7d173f109e280aebd6d from master
2019-09-27 14:52:08 +02:00
Hasan Ramezani
da8f85aa82 [3.0.x] Refs #30798 -- Prevented chaining fields from the same related model multiple times in model Meta.ordering.
Backport of c7944628a1979453468d67818c63957532d396d8 from master
2019-09-27 14:52:02 +02:00
Hasan Ramezani
2362f27265 [3.0.x] Fixed #13296 -- Fixed ordering by Options.order_with_respect_to after deleting objects.
Thanks Simon Meers for the original patch.

Backport of f97bbad908df128189eff77d98af9a25ed1ecf23 from master
2019-09-23 11:45:33 +02:00
Johannes Hoppe
7254f1138d Refs #29444 -- Allowed returning multiple fields from INSERT statements on PostgreSQL.
Thanks Florian Apolloner, Tim Graham, Simon Charette, Nick Pope, and
Mariusz Felisiak for reviews.
2019-09-09 10:51:14 +02:00
Hasan Ramezani
85458e94e3 Fixed #29260 -- Skipped an UPDATE when adding a model instance with primary key that has a default. 2019-08-19 13:28:35 +02:00
Simon Charette
8b3e1b6e9e Refs #11964 -- Made constraint support check respect required_db_features.
This will notably silence the warnings issued when running the test
suite on MySQL.
2019-08-12 06:44:37 +02:00
Jon Dufresne
60dc957a82 Removed unnecessary code in Model.__init__().
As is_related_object is True, the val variable is unused for the
remainder of the method.

Unnecessary since 53da1e47942f22a56e761d786ba89d05ca55a224.
2019-07-23 07:45:07 +02:00
can
53209f7830 Fixed #30613 -- Moved index name validation to system checks. 2019-07-05 09:30:21 +02:00
葛汉斌
fcbc502af9 Simplified Model.save() a bit. 2019-05-28 15:40:31 +02:00
Rob
519016e5f2 Fixed #28147 -- Fixed loss of assigned parent when saving child after parent.
Thanks Erwin Junge for the initial patch.
2019-05-21 10:11:22 +02:00
zeyneloz
6485a5f450 Fixed #30409 -- Allowed using foreign key's attnames in unique/index_together and Index's fields. 2019-05-01 11:51:27 +02:00
Ville Skyttä
03db5fddfd Fixed typos in docs, comments, and exception messages. 2019-04-18 09:33:53 +02:00
Matthias Kestenholz
ea071870f9 Fixed #30280 -- Restored Model.get_FIELD_display()'s coercion of lazy strings.
Reverted cc79c7ee637e65c8da27e56d746c87903d5ec901.
2019-03-22 12:30:10 -04:00
Matt Westcott
58ad030d05 Fixed #30254 -- Allowed model metaclasses to access the attribute dict in __init__().
Regression in a68ea231012434b522ce45c513d84add516afa60.
2019-03-14 21:05:23 -04:00
Mariusz Felisiak
f69c7bbdce
Refs #29408 -- Cosmetic edits for validation of related fields and lookups in model Meta.ordering.
Follow up to 440505cb2cadbe1a5b9fba246bcde6c04f51d07e.
2019-03-01 19:38:21 +01:00
Hasan Ramezani
440505cb2c Fixed #29408 -- Added validation of related fields and lookups in model Meta.ordering. 2019-03-01 17:09:33 +01:00
Simon Charette
8d2dcc47cd Fixed #30106 -- Made order_with_respect_to updates use QuerySet.bulk_update(). 2019-01-21 17:02:20 -05:00
Paveł Tyślacki
b69f8eb04c Fixed #30062 -- Added support for unique conditional constraints. 2019-01-12 09:50:20 -05:00
Sergey Fedoseev
a68ea23101 Fixed #29970, #30041 -- Made ModelBase.__new__() pass attrs without contribute_to_class() to type.__new__(). 2018-12-22 18:11:24 -05:00
Simon Charette
db13bca60a Fixed #29641 -- Added support for unique constraints in Meta.constraints.
This constraint is similar to Meta.unique_together but also allows
specifying a name.

Co-authored-by: Ian Foote <python@ian.feete.org>
2018-11-13 17:57:27 -05:00
Tim Graham
f77fc56c96
Fixed #29896 -- Fixed incorrect Model.save() cache relation clearing for foreign keys that use to_field.
Regression in ee49306176a2d2f1751cb890bd607d42c7c09196.
2018-10-28 22:54:02 -04:00
Florian Apolloner
bc7dd8490b Fixed #21171 -- Avoided starting a transaction when a single (or atomic queries) are executed.
Checked the following locations:

 * Model.save(): If there are parents involved, take the safe way and use
   transactions since this should be an all or nothing operation.

   If the model has no parents:

    * Signals are executed before and after the previous existing
      transaction -- they were never been part of the transaction.

    * if `force_insert` is set then only one query is executed -> atomic
      by definition and no transaction needed.

    * same applies to `force_update`.

    * If a primary key is set and no `force_*` is set Django will try an
      UPDATE and if that returns zero rows it tries an INSERT. The first
      case is completly save (single query). In the second case a
      transaction should not produce different results since the update
      query is basically a no-op then (might miss something though).

 * QuerySet.update(): no signals issued, single query -> no transaction
   needed.

 * Model/Collector.delete(): This one is fun due to the fact that is
   does many things at once.

   Most importantly though: It does send signals as part of the
   transaction, so for maximum backwards compatibility we need to be
   conservative.

   To ensure maximum compatibility the transaction here is removed only
   if the following holds true:

     * A single instance is being deleted.
     * There are no signal handlers attached to that instance.
     * There are no deletions/updates to cascade.
     * There are no parents which also need deletion.
2018-10-17 12:19:02 +02:00
Jon Dufresne
cc79c7ee63 Refs #27795 -- Removed force_text() in Model._get_FIELD_display(). 2018-08-31 10:59:57 -04:00
Simon Willison
586a9dc429 Fixed #26352 -- Made system check allow ManyToManyField to target the same model if through_fields differs. 2018-08-22 12:07:29 -04:00
Ming Qin
cfb4845f06 Fixed #29625 -- Made Model.refresh_from_db() clear prefetch related caches. 2018-08-20 12:01:42 -04:00
Ramiro Morales
b5c7cb4d33 Fixed #29653 -- Fixed missing related_query_name reverse accessor if GenericRelation is declared on an abstract base model.
Regression in 4ab027b94409e6415b774797bf9d3593da9d9ea8.

Thanks Lauri Kainulainen for the report.
2018-08-10 12:17:26 -04:00
François Dupayrat
861638a307 Fixed #29568 -- Prevented unnecessary UPDATE queries creating child models. 2018-07-20 08:59:15 -04:00
Ian Foote
952f05a6db Fixed #11964 -- Added support for database check constraints. 2018-07-10 15:32:33 -04:00
Tim Graham
e7185a6514 Refs #29516 -- Reverted inadvertent change in Model.__init__(). 2018-06-25 09:39:16 -04:00
Federico Bond
4c36414323 Fixed #29517 -- Rephrased error message when passing incorrect kwarg to model constructor 2018-06-25 09:30:58 +02:00
Carlton Gibson
21fd8041c1
Refs #29358 -- Corrected wording in primary key check message. 2018-05-03 15:28:37 +02:00
Hasan Ramezani
816b8d9518 Fixed #29358 -- Added a system check to prohibit models with more than one primary_key field. 2018-05-03 09:08:29 +02:00
robwa
4ab027b944 Fixed #28988 -- Fixed queries when a GenericRelation is used with multi-table inheritance. 2018-03-12 22:42:48 -04:00
Дилян Палаузов
f427ffcccb Fixed #29093 -- Simplified a few lines in ModelBase.__new__(). 2018-01-31 10:22:56 -05:00
Jon Dufresne
136bf5c214 Fixed #29076 -- Made Model.refresh_from_db() clear cached relationships even if the related id doesn't change. 2018-01-30 10:43:53 -05:00
Дилян Палаузов
d7b2aa24f7 Fixed #28982 -- Simplified code with and/or. 2018-01-03 20:12:23 -05:00
shanghui
cc6bcc6ff5 Fixed #28867 -- Added system check for a model property that clashes with a related field accessor. 2018-01-03 10:34:31 -05:00
Simon Charette
f5a989e603 Fixed #28974 -- Made refresh_from_db() hint routers about its instance. 2018-01-02 09:42:24 -05:00
Tim Graham
d065c92678
Fixed #28918 -- Fixed Model.refresh_from_db() for instances hidden by the default manager. 2017-12-30 18:00:36 -05:00
hui shang
f1aa58479c Fixed #28714 -- Added system checks for invalid model field names in Meta.indexes.
Thanks Gabriel for the report and Adam Johnson for the review.
2017-12-27 18:56:24 -05:00
Дилян Палаузов
4c599ece57 Fixed #28930 -- Simplified code with any() and all(). 2017-12-26 17:11:15 -05:00
Nick Pope
d13a9e44de Fixed #28909 -- Simplified code using tuple/list/set/dict unpacking. 2017-12-11 07:08:45 -05:00
Дилян Палаузов
d2afa5eb23 Fixed #28860 -- Removed unnecessary len() calls. 2017-12-04 10:35:23 -05:00
Paulo
ee49306176 Fixed #27710 -- Made Model.save() invalidate cached, stale relations after a primary key assignment. 2017-11-09 11:40:34 -05:00
k
399a8db33b Fixed #28695 -- Allowed models to use __init_subclass__(). 2017-10-13 21:29:12 -04:00
Simon Charette
216eda103b Refs #28575 -- Removed unnecessary code for model exception pickling.
Setting __qualname__ is sufficient for pickling of DoesNotExist and
and MultipleObjectsReturned to work correctly.
2017-10-13 15:45:12 -04:00
Rachel Tobin
6c92f711ea Refs #28575 -- Allowed pickling Model.DoesNotExist and MultipleObjectsReturned classes. 2017-10-13 09:16:09 -04:00
Paulo
a7b5ad8b19 Fixed #27846 -- Made Model.refresh_from_db() clear cached relations. 2017-10-12 17:04:10 -04:00
Mariusz Felisiak
fb02ebe889 Fixed #28597 -- Fixed crash with the name of a model's autogenerated primary key in an Index's fields. 2017-09-18 14:06:00 -04:00
Sergey Fedoseev
5b1c389603 Refs #23919 -- Replaced usage of django.utils.functional.curry() with functools.partial()/partialmethod(). 2017-09-06 13:11:18 -04:00