Embora a resposta aceita para essa pergunta responda à pergunta como foi redigida, sinto que ela não resolve o problema real em questão.
Para ter uma resposta completa, desabilite a API HTML navegável removendo-a das classes de renderizador da seguinte maneira:
REST_FRAMEWORK = {
'DEFAULT_RENDERER_CLASSES': (
'rest_framework.renderers.JSONRenderer',
)
}
No entanto, o problema real ao qual a pergunta se refere é que as pessoas podem postar na API sem autenticação. Embora a remoção do formulário a torne menos óbvia, essa resposta não protege os pontos de extremidade da API.
No mínimo, alguém encontra essa pergunta e procura proteger a API contra envios POST não autenticados ou não autorizados; o está olhando para mudar o permissões da API
A seguir, todos os pontos de extremidade serão configurados como somente leitura, a menos que o usuário seja autenticado.
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
)
}
Se você deseja ocultar completamente a API, a menos que o usuário esteja logado, você também pode usar IsAuthenticated
.
FYI: Isso também removerá o formulário da API navegável em HTML, pois responde às permissões. Quando um usuário autenticado efetua login, o formulário estará disponível novamente.
Rodada de Bônus :
Ative apenas a API HTML navegável no dev:
DEFAULT_RENDERER_CLASSES = (
'rest_framework.renderers.JSONRenderer',
)
if DEBUG:
DEFAULT_RENDERER_CLASSES = DEFAULT_RENDERER_CLASSES + (
'rest_framework.renderers.BrowsableAPIRenderer',
)
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticatedOrReadOnly',
),
'DEFAULT_RENDERER_CLASSES': DEFAULT_RENDERER_CLASSES
}