Я бы хотел, чтобы другой list_filter отображался в admin.py в соответствии с текущим пользователем. Я попробовал несколько способов получить request.user
, но я не могу понять это. Мой admin.py здесь:
class StudentAdmin(admin.ModelAdmin):
fields = ('nickname', 'student_first',)
list_display = ('nickname',)
# I need some function to get the current user
#if request.user.is_superuser: didn't work
if get_user:
list_filter = ('classroom__teacher',)
else:
list_filter = (ClassListFilter,)
def get_queryset(self, request):
qs = super(StudentAdmin, self).get_queryset(request)
if request.user.is_superuser:
stfilter = qs.all()
else:
stfilter = qs.filter(classroom__teacher=request.user)
return stfilter