@NikClik

Отображать поле в зависимости от статуса пользователя, как?

У меня есть модель
class CompanyNews(models.Model):
...
    IsVisible = models.BooleanField(default=False)

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

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

Заранее спасибо за любую инфу
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Вам надо переопределить метод 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
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@immaculate
Программист-путешественник
Встроенная функциональность Django такого точно не поддерживает. Надо писать собственный view для админки, в котором и проверять наличие нужного разрешения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы