Resuelto: campo de fecha de actualización automática del administrador de Django

El principal problema es que Django no maneja correctamente el campo de fecha de actualización automática. Si intenta actualizar el campo de fecha usando la interfaz de administración, Django actualizará automáticamente todos los campos en la tabla con el mismo nombre, incluido el campo de fecha de actualización automática. Esto puede provocar cambios inesperados y potencialmente incorrectos en sus datos.

I have a model with a date field. I want to automatically update the date field when an object is created or edited in the admin panel. How can I do this?


A:

You can override <code>save_model</code> method of your admin class and set the value of <code>date</code> field to <code>datetime.now()</code>. 
<blockquote>
<p><strong><a href="https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin" rel="nofollow noreferrer">ModelAdmin</a></strong></p>
<p><strong><a href="https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django-contrib-admin-options-modeladmin-save_model" rel="nofollow noreferrer">save_model()</a></strong></p>
<p>[...] This method should save the object and return the new instance.</p>
</blockquote>
Example: 
<code>class MyModelAdmin(admin, ModelAdmin):

    def save_model(self, request, obj, form, change):

        if not change: # obj is being created for first time (i e., it's new)

            obj = super().save_model(request, obj, form, change) # create object first

            # now set your custom values here... 

            obj = super().save_model(request, obj, form=form._meta['fields'], change=change) # update object with custom values    

        else: # existing object is being edited (i e., it's not new)    

            # now set your custom values here... 

            obj = super().save_model(request, obj=obj._meta['fields'], form=form._meta['fields'], change=change) # update object with custom values        

        return obj  
</code>

¿Qué es el campo de actualización automática?

El campo "Actualización automática" es un campo booleano en la tabla de "configuración" de un proyecto de Django. Cuando se establece en True, Django buscará automáticamente actualizaciones en los archivos de configuración del proyecto y, si se encuentran nuevas configuraciones, actualizará los archivos de configuración del proyecto.

Artículos Relacionados:

Deja un comentario