menu

arrow_back To display a field depending on the status of the user as?

by
0 votes
I have a model
class CompanyNews(models.Model):
...
IsVisible = models.BooleanField(default=False)

Также я дал пользователям со статусом персонала просматривать админ

Суть в том, что мне нужно сделать так, чтобы поле IsVisibleв админке видел только суперпользователь, как это сделать?
P.S Мне кажется это делается с помощью переопределения какого-нибудь метода наподобие get_querysetв admin.py, но я не знаю, опыта как-то пока не хватает.

Заранее спасибо за любую инфу

2 Answers

by
 
Best answer
0 votes
You need to override the method get_fields :
@admin.register(CompanyNews)
class CompanyNewsAdmin(admin.ModelAdmin):
...

def get_fields(self, request, obj=None):
fields = super(StudentAdmin, self).get_fields(request, obj)
if not request.user.is_superuser:
fields.remove('IsVisible')
return fields
by
0 votes
The built-in Django functionality such precisely does not support. You have to write your own view for the admin, in which to check permissions.