Publicações com a etiqueta "django"
Django Smuggler 0.1.1 released!
Yesterday I published the first stable version of Django Smuggler. An pluggable application for easily export/import fixtures via the administration interface. Especially useful for transporting data in production for the development project and vice versa, but can also be used as a backup tool.
Smuggler is in the Python Package Index (PyPI) and you can easily install it using the tools pip or easy_install. Try:
pip install django-smuggler
or:
easy_install django-smuggler
Feedback (with or without code) is always welcome!
Django Smuggler 0.1.1 lançado!
Ontem publiquei a primeira versão estável do Django Smuggler. Uma aplicação plugável para, de maneira simples, exportar/importar fixtures via a interface de administração. Útil principalmente para transportar dados do projeto em produção para o de desenvolvimento e vice-versa, mas também pode ser utilizado como ferramenta de backup.
O Smuggler está disponível no Python Package Index (PyPI) e você pode instalá-lo facilmente via pip or easy_install. Experimente:
pip install django-smuggler
ou:
easy_install django-smuggler
Feedback (com ou sem código) é sempre muito bem-vindo!
Pré-inicializando formulários de um FormWizard
Se você precisa pré-inicializar dados de formulários num FormWizard do Django, você consegue da seguinte forma:
my_wizard = MyWizard(
[StepOneForm, StepTwoForm],
initial={
1: {field_x: data, field_y: data, ...},
2: {field_x: data, field_y: data, ...},
...
}
)
Certo? Ok, mas e se eu quiser inserir estes dados dinamicamente, de acordo com o usuário logado no site?
A forma que eu encontrei de fazer isso foi sobrescrevendo alguns métodos da classe FormWizard. Veja um exemplo:
from django.contrib.formtools.wizard import FormWizard
class MyWizard(FormWizard):
def parse_params(self, request, *args, **kwargs):
self.user_data = {
'first_name' = request.user.first_name,
'last_name' = request.user.last_name
}
def get_form(self, step, data=None):
if step == 1:
return self.form_list[1](data, prefix=self.prefix_for_step(1),
initial=self.user_data)
else:
super(MyWizard, self).get_form(step, data)
...
Não conhece o form wizard do Django? Leia mais a respeito na documentação oficial do utilitário.
Diário 0.2 out! The Alexandros Grigoropoulos's Diary Release
Today was released the Diário version 0.2, blog application for Django projects, packaged from revision 181 in Subversion.
New in version 0.2:
- Django 1.0.X compatible;
- Support to ping weblog directories (issue #11);
- Changed license to LGPLv3 (issue #36);
- Some code refactoring;
- Removed deprecated features;
- Many bug fixes;
- Other enhancements.
Diário 0.2 too will be packaged to Debian by Lincoln Sousa and be available in main Debian repository.
Help us to improve Diário! See the Roadmap for version 0.3. Thanks to everyone who made this release possible!
This version is a tribute to Alexandros Grigoropoulos, 15-year-old boy, libertarian, murdered by greek police in last week (2008-12-06).
Selecionando por padrão o site corrente num ManyToManyField(Site, ...)
Quem utiliza a django.contrib.sites do Django pode gostar desta dica.
Para quem não conhece, a aplicação sites permite você compartilhar um model com vários outros sites (ou projetos), podendo ter conteúdos iguais (ou em parte) sem redundância, utilizando uma mesma tabela.
No Django 1.0, quando há apenas uma opção para escolha numa ManyToManyField, ela não é selecionada por padrão quando o campo é obrigatório. Antes da versão 1.0 isso não era problema, mas me incomodava o fato de que quando eu tinha mais de uma entrada no model Site, eu deveria escolher o site ao qual eu estava acessando.
Seria interessante pré-selecionar por padrão o site corrente, quando o mesmo é obrigatório e você está acessando sua interface administrativa.
Quando tentei pela última vez fazer isso não obtive sucesso. A idéia era passar para o parâmetro default do ManyToManyField o valor de Site.objects.get_current(). Sem sucesso, não dei mais atenção a isso, mas com o Django 1.0, a cada vez que iria publicar algo neste blog, por exemplo, eu deveria selecionar o site semente.taurinus.org, mesmo sendo o único, a cada texto publicado.
Como todo bom preguiçoso, isso me frustava pois sempre esquecia de marcar o site para ser publicado, causando um erro de validação. Se isso acontece com você meu amigo, eis a solução:
+ from django.conf import settings @@ - publish_on = models.ManyToManyField(Site) + publish_on = models.ManyToManyField(Site, default=[settings.SITE_ID])
A solução acima já foi aplicada no Diário, aplicação para blog que este site faz uso.
Django Diário is now compatible with Django 1.0
Diário weblog application for Django is now compatible with Django 1.0.
After release candidate 1, Diário was broken because of comments refactoring. Apparently, everything works fine.
Special thanks to Rodrigo Pimentel to open an issue for this and for sending patch.
Now is close the eternal issues. :-P
Liberada a versão do Django candidata à 1.0!
Saiu a versão candidata à 1.0 do Django! Agora acredito que só serão aceitos correções de defeitos, atualizações de tradução e documentação.
Existe ainda um ticket (#8796) da django-l10n-portuguese, no roadmap da 1.0, para a atualização do arquivo POT de localização.
Falta apenas 10 strings a serem traduzidas, revisões e uma tarefa sugerida pelo Luciano Ramalho que pode ser encontrada na discussão http://groups.google.com/group/django-l10n-portuguese/browse_thread/thread/8c1c0460d19ccc27. Quem se interessar, envie suas sugestões para a lista de localização ou fique à vontade em anexar seus patchs no ticket #8796.
Confira também as notas de lançamento da versão candidata à 1.0. Note que ela ainda não é a versão definitiva e não é recomendada para o uso em produção, porém creio que não haverá nenhum incidente que atrasará seu lançamento.
Aplicação comments do Django refatorada
Boa notícia para os desenvolvedores Django! Ontem foi feita a refatoração da aplicação bult-in comments do Django (changeset 8557).
Dentre as mudanças, as que mais gostei são:
- Aquela idéia de FreeComment foi abandonada: agora existe somente um model Comment;
- foram adicionados os campos email e URL;
- e agora é documentado!
Detalhes de como atualizar seu código para o novo comments em http://docs.djangoproject.com/en/dev/ref/contrib/comments/upgrade/.
Se ainda não gosta desta aplicação, existe uma alternativa com suporte a threads: é o django-threadedcomments.
PyCon Rio: e lá vou eu...
Confirmado: estou indo para a PyConBrasil, edição Rio de Janeiro. O evento ocorrerá durante os dias 18, 19 e 20 de setembro. Estarei por lá nos dias 17 à 21.
Quem vai? Será que galera da Django Brasil estará em peso por lá para um encontro informal!?
Maiores informações, no site do evento: http://pyconbrasil.com.br/.
Tema do Django para GNOME
Eu utilizo no meu GNOME o tema Clearlooks acho que desde que ele foi lançado. Tentei utilizar outros, mas nunca me acostumei.
Depois que o grande pixel-artista Jader Rubini, fez um lindo fundo de tela para a comunidade Django Brasil, eu dei uma uma pequena personalizada no Clearlooks e o chamei de Django. E por que não? Tem as mesmas cores comumente utilizadas pelo Projeto Django.
Eu achei que o conjunto (fundo de tela, clearlooks e cores) ficou bonito e agradável. Dê uma olhada:
Minha área de trabalho.
Se gostou também, você pode obtê-los nos links abaixo:
- Tema: django-gnome-theme.tar.gz
- Fundo de tela: DjangoBrasil_Wallpapers_by_jaderubini.zip