mirror of
				https://github.com/django/django.git
				synced 2025-11-04 09:57:47 +03:00 
			
		
		
		
	Fixed #15566 - Documented that update() doesn't honor DateField.auto_now
Thanks Shabda Raaj for the draft patch.
This commit is contained in:
		
							parent
							
								
									09a99714c0
								
							
						
					
					
						commit
						dc01e41d23
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -516,8 +516,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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user