Usando o reverse URL do Django Admin

Posted by Gilson Filho on Sáb 21 julho 2012

Olá pessoal,

Existem situações que queremos aproveitar uma URL de alguma página do django-admin para inserir em um link, para quando um usuário que tem permissão de acesso, clicar nele, possa ser redirecionado para lá sem problemas, ao invés de digitar o endereço do Painel Administrativo, e etc.

Olhando a fonte do django-admin, o arquivo sites.py cria as URLs das aplicações dinamicamente e com isso você pode aproveitar isso e usá-la no seu template. Mas como assim? Vou explicar com um exemplo:

    <a href="{% url admin:index %}> Acesse o Painel Administrativo</a>

Aquele reverse URL, ao ser renderizado pelo django, vai se transformar em um link que te leva para a página inicial do admin. E como o Django gera as URLs das aplicações de forma dinâmica, você também terá reverse URL das mesmas:

    <a href="{% url admin:app_model_action %}>Link que acessa uma ação</a>

O django cria o reverse URL da seguinte forma:

aplicação + nome do modelo + ação (create, update, delete, etc)

Seguindo esse raciocínio, vamos criar dois links: acessar lista de registros e formulário de novo registro:

<a href="{% url admin:foo_bar_changelist %}">Lista de Registros</a>
<a href="{% url admin:foo_bar_add %}">Novo registro</a>

Então é isso. Até mais ;)



Comments !