Django tastypie: пользователь не видит данных - PullRequest
0 голосов
/ 14 сентября 2018

Я хочу добавить аутентификацию в мой API, чтобы данные могли видеть только авторизованные люди.

К своему классу ресурсов я добавил:

authentication = BasicAuthentication()
authorization = DjangoAuthorization()

Затем я добавил нового пользователя с помощью администратора Django. Он указан как активный и обслуживающий персонал. Других разрешений не было.

Теперь, когда я пробую URL ресурса, он запрашивает учетные данные.

Когда я использую учетные данные новых пользователей, я ничего не получаю:

{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 0}, "objects": []}

Нет объектов, ничего. Если я войду в систему как root, я увижу все данные.

Как мне назначить материал пользователю, чтобы он мог видеть ресурсы?

1 Ответ

0 голосов
/ 30 октября 2018

Во-первых, stuff status только указывает, может ли пользователь войти на этот сайт администратора.Вы должны увидеть В чем разница между персоналом, администратором и суперпользователем в django?

Во-вторых, DjangoAuthorization от Tastypie проверяет разрешение, предоставленное им пользователем на модели ресурса (через django.contrib.auth.models.Permission).https://django -tastypie.readthedocs.io / en / latest / authorization.html # djangoauthorization

Очевидно, что причина, по которой root может видеть все данные, заключается в том, что root является superuser .Таким образом, вы можете сделать:

  • предоставить пользователю суперпользователя;

  • предоставить пользователю права на чтение (можно изменить ..) текущегоresource_model;

...