Ограничение поля выбора 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
...