Изменение поля с помощью сеттера в панели администратора
У меня следующая структура: (Модели)
class Lessons(models.Model):
status_choice = [
("COMING", _("Coming soon..")),
("PROGRESS", _("In progress")),
("DONE", _("Done")),
("CANCELED", _("Canceled"))
]
_status = models.CharField(max_length=15, choices=status_choice, default=COMING_SOON)
@property
def status(self):
return self._status
@status.setter
def status(self, value):
#some validation
self.save()
And admin.py:
@admin.register(Lessons)
class AdminLessons(admin.ModelAdmin):
list_display = ("class_name", "get_full_status", "time_start", "time_end")
@admin.display(description="Status")
def get_full_status(self, obj):
return [item[1] for item in Lessons.status_choice if item[0] in obj.status]
Как реализовать сеттер, когда поле изменяется админпанелью? Код (выше) работает, когда мы получили запросы на изменения, но как реализовать его, когда изменения вносятся админ-панелью? Буду благодарен за помощь!