Warning: Invalid argument supplied for foreach() in /home/hugodoria/hdoria.archlinux-br.org/blog/wp-includes/classes.php on line 255
Hugo Doria » Blog Archive » Django e FlatPages com Debug=False

Django e FlatPages com Debug=False

Hoje eu precisei fazer deploy de um projeto que criei usando Django e encontrei um problema bem estranho.

Neste projeto eu usei várias FlatPages  ( algo que ainda não tinha precisado usar no Django) e estava tudo funcionando beleza no ambiente de desenvolvimento. Ao jogar o projeto para a produção eu mudei o Debug para False, claro. Ao fazer isso todas as FlatPages (páginas estáticas) do projeto pararam de funcionar, sempre dando erro 500 (Internal Server Error).

Voltei o Debug para True e bang: as flatpages voltaram a funcionar. Fiquei super encucado porque, para mim, aquilo não estava fazendo sentido.

Comecei a olhar os logs e percebi que o Django estava sempre procurando pelo arquivo 404.html, o que deveria acontecer sempre que ele não encontrasse as urls no arquivo urls.py, ou não existisse uma página estática registrada. Ou seja, não era para acontecer.

De qualquer forma não resisti à tentação. Fui no diretório de templates e criei um arquivo 404.html. Isto resolveu o problema e todas as FlatPages passaram a funcionar mesmo com o Debug setado em False. Engraçado, né? Se quiser, você pode criar um arquivo 404.html realmente funcional ou simplesmente dar um "touch templates/404.html".

Fica aí a dica para quem tiver este problema também.



4 Responses to “Django e FlatPages com Debug=False”

  1. Henrique disse:

    Na verdade, não tem relação com FlatPages. É que em modo Debug, uma página 404 nunca é exibida, então o Django nunca falhou ao encontrar o template, mas *sempre* deve existir um 404.html e um 500.html no diretório templates.

  2. semente disse:

    Opa, tem um ticket relacionado a isso: http://code.djangoproject.com/ticket/3335

    Depois dê uma olhada se interessar.

  3. Maravilha, Hugo!

    Bom saber dessa nova. Vou começar a “brincar” com Django na semana que vem e creio que ficaria louco se algo desse tipo acontecesse comigo.

    E vamos que vamos! Um passando o conhecimento ao outro!

  4. Kra, tentei sua solução, mas ainda assim, não consigo exibir corretamente minhas flatpages.

    Tem algum outro macete???

Leave a Reply