Первая проверка прав доступа заключается в том, чтобы убедиться, что пользователь может получить доступ к запрошенному ресурсу. После этого каждая из этих проверок разрешений запускается BrowsableAPIRenderer
, чтобы проверить, имеет ли пользователь доступ к методам HTTP PUT
, PATCH
DELETE
и OPTIONS
, чтобы определить, отображается ли шаблон должны включать кнопки, которые позволят вам выполнить эти действия на запрашиваемом ресурсе. Первая проверка разрешений заключается в том, есть ли у вас разрешение GET
. Когда я запускаю это локально, я на самом деле вижу 6 проверок, потому что PUT проверяется дважды, хотя я не уверен почему.
Вы можете увидеть это в действии, если добавите строку print(request.method)
в has_object_permission
.
Если вы добавите ?format=json
в конец вашего URL-адреса или просто добавите format=json
в строку запроса, если у вас есть дополнительные параметры, вы заставите использовать JSONRenderer
, который будет только извлекать и возвращать данные, без просмотра API-шаблона. Таким образом, эти дополнительные проверки прав доступа не нужны, чтобы увидеть, должен ли средство визуализации создавать эти кнопки в шаблоне. JSONRenderer
будет запускать только одну проверку разрешений для запроса GET
.