Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

[1.4.X] Fixed #15566 - Documented that update() doesn't honor DateFie…

…ld.auto_now

Thanks Shabda Raaj for the draft patch.

Backport of dc01e41 from master
  • Loading branch information...
commit b0e2cb8e470acc552b4ed3fde3d5b1322b426bf2 1 parent 7e8483e
@timgraham timgraham authored
Showing with 10 additions and 9 deletions.
  1. +4 −4 docs/howto/custom-model-fields.txt
  2. +6 −5 docs/topics/db/queries.txt
View
8 docs/howto/custom-model-fields.txt
@@ -181,10 +181,10 @@ card values plus their suits; 104 characters in total.
Many of Django's model fields accept options that they don't do anything
with. For example, you can pass both
:attr:`~django.db.models.Field.editable` and
- :attr:`~django.db.models.Field.auto_now` to a
+ :attr:`~django.db.models.DateField.auto_now` to a
:class:`django.db.models.DateField` and it will simply ignore the
:attr:`~django.db.models.Field.editable` parameter
- (:attr:`~django.db.models.Field.auto_now` being set implies
+ (:attr:`~django.db.models.DateField.auto_now` being set implies
``editable=False``). No error is raised in this case.
This behavior simplifies the field classes, because they don't need to
@@ -524,8 +524,8 @@ for the first time, the ``add`` parameter will be ``True``, otherwise it will be
You only need to override this method if you want to preprocess the value
somehow, just before saving. For example, Django's
:class:`~django.db.models.DateTimeField` uses this method to set the attribute
-correctly in the case of :attr:`~django.db.models.Field.auto_now` or
-:attr:`~django.db.models.Field.auto_now_add`.
+correctly in the case of :attr:`~django.db.models.DateField.auto_now` or
+:attr:`~django.db.models.DateField.auto_now_add`.
If you do override this method, you must return the value of the attribute at
the end. You should also update the model's attribute if you make any changes
View
11 docs/topics/db/queries.txt
@@ -968,11 +968,12 @@ Be aware that the ``update()`` method is converted directly to an SQL
statement. It is a bulk operation for direct updates. It doesn't run any
:meth:`~django.db.models.Model.save` methods on your models, or emit the
``pre_save`` or ``post_save`` signals (which are a consequence of calling
-:meth:`~django.db.models.Model.save`). If you want to save every item in a
-:class:`~django.db.models.query.QuerySet` and make sure that the
-:meth:`~django.db.models.Model.save` method is called on each instance, you
-don't need any special function to handle that. Just loop over them and call
-:meth:`~django.db.models.Model.save`::
+:meth:`~django.db.models.Model.save`), or honor the
+:attr:`~django.db.models.DateField.auto_now` field option.
+If you want to save every item in a :class:`~django.db.models.query.QuerySet`
+and make sure that the :meth:`~django.db.models.Model.save` method is called on
+each instance, you don't need any special function to handle that. Just loop
+over them and call :meth:`~django.db.models.Model.save`::
for item in my_queryset:
item.save()
Please sign in to comment.
Something went wrong with that request. Please try again.