Я пробовал различные методы для достижения этого.
Я решил не переопределять formfield_for_dbfield, поскольку он не получает копию объекта запроса, и я надеялся избежать взлома thread_locals.
Я решил переопределить get_form в моем классе ModelAdmin и попробовал следующее:
class PageOptions(admin.ModelAdmin):
def get_form(self, request, obj=None, **kwargs):
if request.user.is_superuser:
self.fieldsets = ((None, {'fields': ('title','name',),}),)
else:
self.fieldsets = ((None, {'fields': ('title',),}),)
return super(PageOptions,self).get_form(request, obj=None, **kwargs)
Когда я печатаю поля или decl_fieldsets из get_form, я получаю None (или независимо от того, что я установил как начальное значение в PageOptions).
Почему это не работает, и есть ли лучший способ сделать это?