sergey_1990
@sergey_1990
1

Как использовать свои разрешения в django?

ЗНАТОКИ ДЖАНГИ прошу помощи, как добавить свое разрешение к модели при ее использовании в админке, например просмотр записей но не всех а которых флаг false в одном из полей?
class Contractor(models.Model):
    """модель поставщика"""
    title = models.CharField(max_length=150, verbose_name='Название поставщика')
    # phone_regex = RegexValidator(regex=r'^((\+7)+([0-9]){10})$', message="Формат: '+79998882255' ")
    phone = models.CharField( max_length=12, verbose_name='Телефон поставщика')
    site = models.URLField(max_length=200, verbose_name='Сайт поставщика')
    verified = models.BooleanField(default=False)

    class Meta:
        verbose_name = "Поставщик"
        verbose_name_plural = "Поставщики"
        ordering = ['-title']
        permissions = (
            ("only_not_verified", "Поставщики на проверку"),
        )


class ProductListInline(admin.TabularInline):
    model = ProductList
    extra = 1


class ContractorAdmin(admin.ModelAdmin):
    model = Contractor
    list_display = ('__str__', 'phone', 'site','verified')
    inlines = (ProductListInline,)


и для группы пользователей нужно разрешение просматривать только не проверенные сущности где написать логику для этого разрешени???
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergey_1990
@sergey_1990 Автор вопроса
1
РАЗОБРАЛСЯ САМ
class ContractorAdmin(admin.ModelAdmin):
    model = Contractor
    list_display = ('__str__', 'phone', 'site','verified')
    inlines = (ProductListInline,)

    def get_queryset(self, request):
        """Ограничиваем выдачу списка поставщиков"""
        queryset = super().get_queryset(request)
        if request.user.has_perm('orders.only_not_verified') and not request.user.is_superuser:
            return queryset.filter(verified=False)
        return queryset
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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