Personalizando as visualizações de autenticação do Django

O tutorial oficial do Django nem sempre mostra as melhores práticas ao lidar com a separação de código adequada. Por exemplo, em várias partes da documentação, eles colocam a lógica de negócios no urls.pyarquivo de rotas. Exemplos aqui e aqui . Isso é um não-não.

Em python, explicitamente é melhor do que implícito , então, em vez de colocar informações importantes em arquivos de rotas, apenas crie um wrapper de visão simples para construir e passar os parâmetros necessários para a visão. Por exemplo, ao lidar com as visualizações de autenticação , você pode usar funções tradicionais ou até mesmo lambda– qualquer coisa, desde que a lógica permaneça no arquivo de visualizações.

# First option
def password_reset(request):
context
= {}
context
["form_submit"] = _("Send reset code")
context
["form_class"] = "narrow"

return auth_views.password_reset(
request
=request,
template_name
="generic_form.html",
extra_context
=context
)

# Something more hacky
password_reset_done
= lambda request: auth_views.password_reset_done(
request
=request,
template_name
="auth/password_reset_done.html"
)