/ / Django admin редактируемо поле - предприема действия - django, web, django-модели, django-admin, django-views

Django admin редактируемо поле - предприема действия - django, web, django-модели, django-admin, django-views

Имам въпрос: В администратора на Django, когато имате модел с колона (BooleanField) и го зададете като редактируем в admin.py. Възможно ли е да го проверите и да го запишете, за да предприемете някакви действия? Имам предмет, да кажа Билет, с различни полета и друго поле, наречено Състояние. Виждам всичките му полета в Django Admin (регистрирайте го в admin.py) и когато задам статуса му на True и го запазете, искам django admin да изпрати имейл позволява да каже ... Възможно ли е и ако ... как? Благодаря ви много хора и Весела Коледа!

Отговори:

1 за отговор № 1

Да, това е възможно чрез преодоляване на метода save_model на класа ModelAdmin. Можете да намерите съответните документи тук.

Така че, като дадете примера си, можете да направите нещо подобно на това:

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()

Вероятно ще искате да сте сигурни, че електронната поща няма да бъде изпратена всеки път, когато моделът е записан, като включите по-точна логика в метода.