/ / Campo editable del administrador de Django - toma acción - django, web, django-models, django-admin, django-views

Campo editable del administrador de Django - emprender acciones - django, web, django-models, django-admin, django-views

Tengo una pregunta: En el administrador de Django, cuando tiene un modelo con una columna (BooleanField) y lo configura como editable en admin.py. ¿Es posible cuando lo compruebas y lo guardas para tomar alguna acción? Tengo un objeto, digamos Ticket, con varios campos y otro campo llamado Estado. Veo todos sus campos en Django Admin (regístrelo en admin.py) y cuando establezco su Estado en Verdadero y lo guardo, quiero que django admin envíe un correo electrónico, digamos ... ¿Es posible, y si ... cómo ? Muchas gracias gente y Feliz Navidad!

Respuestas

1 para la respuesta № 1

Sí, esto es posible anulando el método save_model en la clase ModelAdmin. Puedes encontrar los documentos relevantes. aquí.

Entonces, dado tu ejemplo, podrías hacer algo como esto:

from django.contrib import admin

class ArticleAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if obj.BooleanModelFieldName == True:
send_email(object.user.email)
obj.save()

Probablemente querrá asegurarse de que el correo electrónico no se envíe cada vez que se guarda el modelo al incluir una lógica más precisa dentro del método.