Normalmente quando se faz um many to many, é gerado no admin do django um select com a opção multiple. Porém para quando este caso tem bastante registro, a usabilidade não fica das melhores. Até encontrar um item que procura na lista vai tempo.
Para resolver esse problema adicione a linha abaixo no seu Model Admin:
filter_horizontal = ('nome_do_campo_m2m',)
Desta forma este campo passará ter as mesma interface/usabilidade do esquema de permissões do módulo de usuários do django.
hasta!
Django 1.9
Quem sou eu
Pesquisar
Marcadores
Admin
(18)
ajax
(2)
auditoria
(1)
autenticação
(1)
change list
(1)
CKEditor
(3)
Class Based Views
(4)
ColorPicker
(1)
contrab
(2)
Dicas
(64)
django
(2)
Django 1.3
(11)
Django 1.4
(10)
Django 1.6
(6)
Django 1.7
(4)
Django 1.8
(10)
Django 1.9
(4)
Django 2.0
(1)
Django/Python
(58)
E-mail
(1)
Erros Frequentes
(19)
Facebook API
(2)
Flash
(1)
Formset
(3)
Function Based Views
(1)
Git
(2)
ImagesLoaded
(1)
Inlines
(3)
Instagram API
(1)
Instalação
(10)
Interface
(1)
Javascript
(1)
JSON
(1)
Lion
(1)
Login único
(1)
MAC
(2)
maps
(1)
Masonry
(1)
Middleware
(2)
ModelForm
(4)
MySQL
(5)
normalização
(1)
ordenação
(1)
OSX
(1)
paginação
(2)
Parser
(2)
PDF
(2)
plugins-uteis
(6)
RegEx
(1)
RSS
(1)
slugify
(1)
South
(2)
SSH
(1)
Terminal
(1)
Tradução
(2)
tutorial
(10)
Twitter API
(1)
Twitter Style Pagination
(1)
upload
(1)
Vagrant
(2)
Validação
(2)
Virtualenv
(4)
Watermark
(3)
Widgets
(1)
segunda-feira, 29 de novembro de 2010
quinta-feira, 25 de novembro de 2010
Brincando com datas e calendarios no Python
Tente isso no interpretador interativo:
import calendar
cal = calendar.month(2010, 12)
print cal
Nunca foi tão fácil gerar um calendário. =)
Outras informaçãoes: http://www.tutorialspoint.com/python/python_date_time.htm
hasta!
import calendar
cal = calendar.month(2010, 12)
print cal
Nunca foi tão fácil gerar um calendário. =)
Outras informaçãoes: http://www.tutorialspoint.com/python/python_date_time.htm
hasta!
Somar datas no Python
Simples.
O exemplo a seguir calcula uma data futura a dois meses da data atual:
from datetime import datetime, timedelta
meses = 2
dias_por_mes = 30
hoje = datetime.now()
dt_futura = hoje + timedelta(dias_por_mes*meses)
hasta!
O exemplo a seguir calcula uma data futura a dois meses da data atual:
from datetime import datetime, timedelta
meses = 2
dias_por_mes = 30
hoje = datetime.now()
dt_futura = hoje + timedelta(dias_por_mes*meses)
hasta!
'MediaDefiningClass' object is not iterable
Verifique nos arquivos admin.py a ordem de registro de uma classe para administração.
O correto deve ser:
admin.site.register(Model, ModelAdmin)
hasta!
O correto deve ser:
admin.site.register(Model, ModelAdmin)
hasta!
quinta-feira, 11 de novembro de 2010
Lentidão para rodar um projeto no windows em rede?
Para Win7:
- Desabilitar o IPV6 da placa de rede
Para as demais versões:
- Edite o arquivo C:\Windows\System32\drivers\etc\hosts e coloque as linhas abaixo no final do arquivo: (nao esquecer de colocar o seu IP e o nome da sua máquina na rede)
XXX.XXX.XXX.XXX NOME_DA_MAQUINA
XXX.XXX.XXX.XXX:PORTA NOME_DA_MAQUINA:PORTA
Troque os "X" pelo IP (modo IPv4)
hasta!
- Desabilitar o IPV6 da placa de rede
Para as demais versões:
- Edite o arquivo C:\Windows\System32\drivers\etc\hosts e coloque as linhas abaixo no final do arquivo: (nao esquecer de colocar o seu IP e o nome da sua máquina na rede)
XXX.XXX.XXX.XXX NOME_DA_MAQUINA
XXX.XXX.XXX.XXX:PORTA NOME_DA_MAQUINA:PORTA
Troque os "X" pelo IP (modo IPv4)
hasta!
quinta-feira, 28 de outubro de 2010
Gerar slug apartir de uma string
No admin é fácil. Basta utilizar o prepopulated_fields, mas caso precise fazer na mão ou em alguma view, segue uma def que resolve o serviço:
def toSlug(value):
import unicodedata
import re
from django.utils.safestring import mark_safe
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())
return mark_safe(re.sub('[-\s]+', '-', value))
def toSlug(value):
import unicodedata
import re
from django.utils.safestring import mark_safe
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())
return mark_safe(re.sub('[-\s]+', '-', value))
terça-feira, 26 de outubro de 2010
Alterando o formato da data para input em pt-br no ModelForms
Para alterar o formato de digitação das datas, coisa muito comum em vários forms, sempre era feito no js ou tinha que tratar de alguma forma no POST. Utilizando o input_formats o Django resolve esse problema de uma forma mais elegante:
No forms.py do Model utilize assim:
class Classe(ModelForm):
datanascimento = forms.DateField(label=u"Nascimento", input_formats=['%d/%m/%Y'], widget=forms.DateInput(format='%d/%m/%Y'))
hasta!
No forms.py do Model utilize assim:
class Classe(ModelForm):
datanascimento = forms.DateField(label=u"Nascimento", input_formats=['%d/%m/%Y'], widget=forms.DateInput(format='%d/%m/%Y'))
hasta!
quarta-feira, 14 de julho de 2010
Configurando o WSGI da Locaweb
Deixe o arquivo index.wsgi (~/public_html/[project_name]) como descrito abaixo:
import os, sys
DISPATCH = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.join(DISPATCH,'../../wsgi_apps/'))
sys.path.insert(0, os.path.join(DISPATCH,'../../wsgi_apps/[project_name]/'))
os.environ['DJANGO_SETTINGS_MODULE']='[project_name].settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
import os, sys
DISPATCH = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, os.path.join(DISPATCH,'../../wsgi_apps/'))
sys.path.insert(0, os.path.join(DISPATCH,'../../wsgi_apps/[project_name]/'))
os.environ['DJANGO_SETTINGS_MODULE']='
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
hasta!
sexta-feira, 18 de junho de 2010
Ordenar/Embaralhar uma lista em python
Ordenar na maioria das linguagens de programação é bem fácil, sempre é alguma coisa relacionada com "sort". No Python não é diferente:
>>> a = [3,2,4,5,1,6,7]
>>> a.sort()
>>> print a
[1, 2, 3, 4, 5, 6, 7]
Vamos agora embaralhar a lista recém ordenada:
>>> import random
>>> random.shuffle(a)
>>> print a
[4, 2, 3, 7, 1, 6, 5]
Difícil né..
hasta!
>>> a = [3,2,4,5,1,6,7]
>>> a.sort()
>>> print a
[1, 2, 3, 4, 5, 6, 7]
Vamos agora embaralhar a lista recém ordenada:
>>> import random
>>> random.shuffle(a)
>>> print a
[4, 2, 3, 7, 1, 6, 5]
Difícil né..
hasta!
Assinar:
Postagens (Atom)