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.py
arquivo 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"
)