Изменение поля с помощью сеттера в панели администратора

У меня следующая структура: (Модели)

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]

Как реализовать сеттер, когда поле изменяется админпанелью? Код (выше) работает, когда мы получили запросы на изменения, но как реализовать его, когда изменения вносятся админ-панелью? Буду благодарен за помощь!

Вернуться на верх