Arquivo de flatpages django

Django Flatpages – Debug False ?! uatarelis? Parte 01

Posted in Django, Programação, Python with tags , , , on 25 de junho de 2009 by fchevitarese

Boa noite!
Bom, estive desenvolvendo um site, e resolvi utilizar o maravilhoso Django 😉 !!
Então, como haviam algumas partes “estáticas” ou seja, que eram apenas de texto, como sobre a empresa etc, essas coisas informativas em um site normal, resolvi utilizar as flatpages que o Django oferece!

Para utilizá-las, basta adicionar ao INSTALLED_APPS o seguinte :
‘django.contrib.flatpages’,

E também adicionar ao MIDDLEWARE_CLASSES, o seguinte:
‘django.contrib.auth.middleware.AuthenticationMiddleware’,

Feito isto, basta sincronizar o banco de dados com o comando “python manage.py syncdb” que serão criadas as tabelas referentes aos flatpages!
Bom, agora, é entrar no admin, e cadastrar sua primeira flatpage!

Mas primeiro, vamos adicionar nosso site de maneira correta, para que depois possamos exibir tudo certinho.
Clique no item “Sites” e será exibido um grid com os sites disponíveis.
Você pode ver que primeiro está cadastrado o site “example.com”. Vamos alterar este cabra para “localhost:8000” se estivermos rodando a partir do servidor do próprio Django ok. Se não, mude para o seu endereço. Ah… sem http ok !!!

Agora sim, vamos adicionar uma nova flatpage para testarmos!

Adicionando a 1° Flatpage
Uma ressalva importante, é se lembrar de colocar na url sempre as barras no começo e no final, e também a questão dos templates. No nosso caso, iremos criar os templates na pasta onde ficam os templates. Pasta esta que foi configurada no arquivo settings.
No meu caso, como minha pasta de templates, chama-se template, e dentro dela, tenho outra pasta para guardar os templates das flatpages, ficou assim:

Flatpage preenchida
Feito isto, é só salvar.
Beleza, já temos nossa página de conteúdo (“flatpage”). É verdade, pode chamar http://localhost:8000/”a url salva”
Vai aparecer tudinho que você colocou lá 😉

Bom, mas o motivo deste post foi porque, não consegui encontrar nenhuma solução para o meu problema, e tive que fazer isto “alone in the dark” sozinho!!!
Então. Quando eu coloquei o modo debug como false, começaram os meus problemas. Não encontrava nada! nada! e nada! rsrsrs
Então, pude perceber em vários blogs, listas e links encontrados pelo AmiGoogle, que faltavam-me os arquivos 500.html e 404.html. Mas, “uatarelis dis” ?
Bem, os arquivos 404.html e 500.html são os templates para quando o django não encontra as páginas digitadas! Com o debug = true, isto nunca ocorre. Então, criei os arquivos dentro da pasta dos templates.

Ok, mas mesmo assim, meus problemas não acabaram!! Então, resolvi mais uma vez recorrer ao google, e encontrei um belo link do prórpio Django que me fez ter a idéia para resolução deste problema!

http://code.djangoproject.com/browser/django/trunk/django/contrib/flatpages

Acompanhe a 2° parte do post.

Django Flatpages – Debug False ?! uatarelis? Parte 02

Posted in Django, Programação, Python with tags , , , , on 25 de junho de 2009 by fchevitarese

Continuação do  post:
Parte 01

O que fiz, foi desativar o middleware das flatpages, que é responsável por localizar e renderizar as flatpages, e criar a view para fazer isto!!!
Bom, então vamos lá!
Esta é minha view para pegar os dados das flatpages. Não se esqueçam das tabulações…. Aqui não da pra fazer certinho 😦

View para buscar as flatpages

Você pode adicionar este código a qualquer view sua 😉

Agora, vamos setar as urls… no arquivo urls.py para podermos exibir as benditas.

Configurando as urls ...
A única desvantagem ao middleware do flatpages, é que você precisa adiconar cada url de cada flatpage! O middleware faz este trabalho para você, mas no meu caso, o sacana não quis funcionar de forma alguma!

Agora, para terminar, vamos criar dentro da nossa pasta de templates, uma pasta chamada flatpages.
Dentro dela, vamos criar um arquivo chamado default.html.  Tem que ser este nome? Não na realidade fica a seu critério, só que fica mais fácil, pois todos os arquivos são os mesmos, e eles são passados pela view de acordo com o que você cadastrou no nome do modelo de sua flatpage. Portanto, no meu caso, passei como modelo para todas as minhas flatpages, o arquivo default.html, pois assim, preciso criar apenas um ! 😉

Segue abaixo como ficou o meu default.html

{% extends “base/base.html” %}
{% block titulo %}{{ block.super }} | {{ flatpage.title }}{% endblock %}
<h1>{{ flatpage.title }}</h1>
{% block outros %}
{{ flatpage.content|safe }}
<br />
<br />
<br />
<center><input type=”button” value=”Voltar” style=”width: 50px;” onClick=”javascript:history.go(-1); “/></center>
{% endblock %}


No meu caso, meu template herda as características do meu template base, que está localizado na pasta de templates…
Neste template base, tem um block onde coloco outras coisas, daí o nome {% block outros %}

Bom, é isto!

Espero que possa ter ajudado mais alguém com seu projeto que ficou parado queimando alguns neurônios tentando fazer as flatpages funcionarem!!!

Até mais !!

Fred Chevitarese – GNU/Linux