Ограничение поля выбора django в админке django для каждого пользователя

У меня такой экзамен:

class Exam(BaseModel):
    ...
    STATE_CHOICES = (
        (PASS, PASS),
        (FAILED, FAILED),
        (GREAT, GREAT),
    state = models.CharField(max_length=15, choices=STATE_CHOICES, default=PASS)
    ...

В админке Django я хочу, чтобы пользователь с группой X мог изменить состояние только с FAILED на PASS. а пользователи с группой Y могли изменять состояние с FAILED на PASS и PASS на GREAT. вот мой admin.py:

@admin.register(Exam)
class ExamAdmin(NestedModelAdmin):
    list_display = ('state',)

Кто-нибудь знает решение для этого?

Это может сработать;

class ExamForm(forms.ModelForm):
    ...
    STATE_CHOICES = (
        (PASS, PASS),
        (FAILED, FAILED),
        (GREAT, GREAT),
    state = forms.CharField(choices=STATE_CHOICES)
    class Meta:
        model = Exam
        fields = ('state',)
    ...

@admin.register(Exam)
class ExamModelAdmin(admin.ModelAdmin):
    ...
    fields = ('state',)
    list_display = ('state',)
    form = ExamForm
    ...

Простите, что привел плохой пример раньше, не было слишком много времени.
Вернуться на верх