Pergunta

Eu queria saber se a página django administrador pode ser usado para usuários externos.

Vamos dizer que eu tenho esses modelos:

class Publisher(models.Model):
  admin_user = models.ForeignKey(Admin.User)
  ..

class Publication(models.Model):
  publisher = models.ForeignKey(Publisher)
  ..

Eu não sei exatamente o que admin_user seria - talvez ele poderia ser o e-mail de um usuário admin

?

De qualquer forma. Existe uma maneira permitir que um usuário admin apenas adicionar / editar / Publicações de exclusão cujo editor é associado a esse usuário admin?

Obrigada! -Chris

Foi útil?

Solução

Se você precisa de permissões mais refinado em seus próprios aplicativos, deve-se notar que a aplicação administrativa do Django suporta este, através dos métodos seguintes que pode ser substituído em subclasses de ModelAdmin. Note-se que todos esses métodos receber o objeto HttpRequest atual como um argumento, permitindo a personalização baseada no usuário específico autenticado:

  • queryset(self, request): deve retornar um QuerySet para uso na lista do administrador de objetos para um modelo. Os objetos não presentes neste QuerySet não será exibido.
  • has_add_permission(self, request): deve retornar true se a adição de um objeto é permitido, False contrário.
  • has_change_permission(self, request, obj=None): deve retornar true se a edição obj é permitido, False contrário. Se obj é None, deve retornar verdadeiro ou falso para indicar se a edição de objectos deste tipo é permitida em geral (por exemplo, se False será interpretada no sentido de que o usuário atual não tem permissão para editar qualquer objeto deste tipo).
  • has_delete_permission(self, request, obj=None): deve retornar true se apagar obj é permitido, False contrário. Se obj é None, deve retornar verdadeiro ou falso para indicar se os objetos exclusão deste tipo é permitido em geral (por exemplo, se False será interpretada no sentido de que o usuário atual não tem permissão para excluir qualquer objeto deste tipo).

[django.com]

Outras dicas

django administrador pode, até certo ponto, ser restrito. Para um determinado usuário, em primeiro lugar, eles devem ter direitos de administrador, a fim de entrar no site de administração. Qualquer pessoa com este conjunto de bandeira pode visualizar todas as páginas de administração. Se você quiser restringir a visualização, você está sem sorte, porque isso simplesmente não é implementada. A partir daí, cada usuário tem uma série de permissões, para criar, atualizar e excluir, para cada modelo no site de administração. A maneira mais conveniente de lidar com isso é criar grupos, e depois atribuir permissões aos grupos.

Eu vejo a resposta de Chris foi útil para a questão do tempo foi perguntado. Mas agora é quase de 2016 e eu acho que fica mais fácil para permitir o acesso restrito de Django Admin panel ao usuário final.

sistema de autenticação do Django fornece:

Grupos.: Uma forma genérica de aplicar labels e permissões para mais de um usuário

Onde se pode adicionar permissões específicas e aplicar esse grupo ao usuário via painel de administração ou com os códigos da escrita.

Depois de adicionar usuários a esses grupos específicos, necessidade de administração para ativar o sinalizador is_staff para esses usuários.

Usuário será capaz de acesso restrito modelos registrados em administração. Espero que isso ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top