В интерфейсе администратора Django есть форма определенной модели, которую я хочу отображать различными способами, в зависимости от того, является ли зарегистрированный пользователь, обращающийся к этой форме, обычным пользователем или администратором. Это работает найти кроме одной ОГРОМНОЙ вещи: это смешано. Например, поля, которые должны редактироваться администратором, доступны только для чтения, после того как я непосредственно перед этим вошел в систему как «обычный» пользователь. Если я попытаюсь сделать то же самое сразу после перезапуска сервера, все будет работать нормально, и все поля будут доступны для редактирования. Я полагаю, что каким-то образом сессии пользователя перепутаны. Как справиться с этим?
Вот что у меня есть:
В приложении admin.py:
151 class AdminForm(ModelForm):
152 class Meta:
153 model = PromotionalSlot
154 exclude = ['deal']
155
156 class NormalUserForm(ModelForm):
157 class Meta:
158 model = PromotionalSlot
159 exclude = ['site']
160
161 class PromotionalSlotAdmin(admin.ModelAdmin):
162 def get_form(self, request, obj=None, **kwargs):
163 if request.user.is_superuser:
164 return AdminForm
165 else:
166 self.readonly_fields = ['start_date','end_date','level','city','status']
167 return NormalUserForm·
168
169 admin.site.register(models.PromotionalSlot, PromotionalSlotAdmin)
Спасибо