Kuxazululiwe: inkambu yedethi yokubuyekeza okuzenzakalelayo ye-django admin

Inkinga enkulu ukuthi inkambu yedethi yokubuyekeza ngokuzenzakalela ayiphathwa kahle yi-Django. Uma uzama ukubuyekeza inkambu yedethi usebenzisa isixhumi esibonakalayo somqondisi, i-Django izobuyekeza ngokuzenzakalelayo zonke izinkambu ezisethebula ngegama elifanayo, okuhlanganisa nenkundla yedethi yokubuyekeza okuzenzakalelayo. Lokhu kungaholela ezinguqukweni ezingalindelekile futhi okungenzeka azilungile kudatha yakho.

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>

Iyini inkambu yokubuyekeza okuzenzakalelayo

Inkambu ethi “Ukubuyekeza okuzenzakalelayo” iyinkambu ye-boolean kuthebula “lezilungiselelo” lephrojekthi ye-Django. Uma isethelwe kokuthi Iqiniso, i-Django izohlola ngokuzenzakalelayo izibuyekezo kumafayela ezilungiselelo zephrojekthi futhi, uma kukhona izilungiselelo ezintsha ezitholakalayo, izobuyekeza amafayela ezilungiselelo zephrojekthi.

Okuthunyelwe okuhlobene:

Shiya amazwana