como sobrescrever django modelo tornar manuseio método
-
07-07-2019 - |
Pergunta
Na minha aplicação, estou enviando solicitações do cron e de tarefa periódica em segundo plano para atualizar o cache de páginas. Durante o envio de um kwarg force_refresh do ponto de vista é fácil, não há nenhuma maneira aparente para enviar a kwarg force_refresh aos métodos sendo acessado a partir do modelo. Há uma abundância destes que estou usando, e que seria apenas tornar as coisas mais complexo para começar a chamar todos estes métodos de exibição.
Então, eu tenho tentado a substituir o modelo método render para que eu passar na kwarg force_refresh sempre que um método está sendo acessado, se a resposta é dada para um pedido de tarefa de fundo.
Eu percebo que ela pode simplesmente levar a problemas inesperados para adicionar este kwarg a todos os métodos sendo chamado, e um try / exceto bloco ArgumentError não ser exatamente uma solução robusta, se você tiver quaisquer recomendações sobre a melhor maneira de lidar com este (espero além de acesso a cada um desses métodos da vista!), seria útil para ouvi-los.
Solução
Desculpe, mas seu caso de uso é precisamente o que a função de visão é para.
Na função de vista que você reunir todos os dados. A partir desta você criar um dicionário dos últimos dados que serão utilizados pelo modelo.
Toda a lógica vai na view. O modelo tem um processamento mínimo.