Rezolvat: câmpul pentru data actualizării automate django admin

Problema principală este că câmpul pentru data actualizării automate nu este gestionat corespunzător de Django. Dacă încercați să actualizați câmpul pentru dată folosind interfața de administrare, Django va actualiza automat toate câmpurile din tabel cu același nume, inclusiv câmpul pentru data actualizării automate. Acest lucru poate duce la modificări neașteptate și potențial incorecte ale datelor dvs.

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>

Ce este câmpul Actualizare automată

Câmpul „Actualizare automată” este un câmp boolean din tabelul „setări” al unui proiect Django. Când este setat la True, Django va verifica automat actualizările fișierelor de setări ale proiectului și, dacă se găsesc setări noi, va actualiza fișierele de setări ale proiectului.

Postări asemănatoare:

Lăsați un comentariu