Разрешения объекта для нескольких объектов в DRFPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Разрешения объекта для нескольких объектов в DRF

Сообщение Anonymous »

Я не могу прописывать разрешения. У меня есть модели учетных записей, сайтов и информационных данных:
Аккаунты

Код: Выделить всё

class Accounts(models.Model):
user = models.ForeignKey(to=User, on_delete=models.SET_NULL, null=True, editable=True, blank=True, verbose_name='Пользователь')
name = models.CharField(max_length=255, unique=True, verbose_name='Название')

def __str__(self):
return self.name
Сайты и информация

Код: Выделить всё

class Sites(models.Model):
account = models.ForeignKey(to=Accounts, on_delete=models.RESTRICT)
name = models.CharField(max_length=255)

def __str__(self):
return self.name

class Information(models.Model):
site = models.ForeignKey(to=Sites, related_name='information', on_delete=models.RESTRICT)
name_of_data = models.CharField(max_length=255)
data = models.CharField(max_length=255)

def __str__(self):
return self.name_of_data
Мое представление должно возвращать список сайтов и информацию для каждого сайта, в зависимости от того, какая учетная запись запрошена (например, /accounts/3 должен возвращать все сайты и информацию, принадлежащую третьей учетной записи). . Вот мои сериализаторы для большего понимания:

Код: Выделить всё

from .models import Information, Sites
from app.serializers import AccountsSerializer

class InformationSerializer(serializers.ModelSerializer):
class Meta:
model = Information
fields = ['name_of_data', 'data']

class SitesSerializer(serializers.ModelSerializer):
information = InformationSerializer(many=True, read_only=True)
account = AccountsSerializer(read_only=True)

class Meta:
model = Sites
fields = ['account', 'name', 'information']
Вот мое мнение по этому поводу:

Код: Выделить всё

class ProfileView(ListAPIView):
def list(self, request, *args, **kwargs):
self.check_object_permissions()
account_id = self.kwargs.get('account_id')
queryset = Sites.objects.filter(account_id=account_id)
serializer = SitesSerializer(queryset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
Мне нужно ограничить доступ пользователей, используя следующее правило:
  • Пользователь, который является владельцем запрошенной учетной записи могу просмотреть информацию об аккаунте.
Но у меня всегда возникают ошибки и всегда разные ошибки.
В приведенном выше Разрешения кода вообще не проверяются и не работают.

Подробнее здесь: https://stackoverflow.com/questions/786 ... cts-in-drf
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Фильтрация связанных объектов в сериализаторе DRF на основе разрешения пользователя
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Обновление нескольких вложенных объектов в DRF
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Обновление нескольких вложенных объектов в DRF
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Обновление нескольких вложенных объектов в DRF
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • DRF разрешения в зависимости от сериализации
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»