Opa!
Segue um breve post mostrando algumas mudanças para a versão nova do Ubuntu
Abraços!
Opa!
Segue um breve post mostrando algumas mudanças para a versão nova do Ubuntu
Abraços!
Opa!
Blog às moscas… Muito tempo sem postar… Mas como eu não sei tudo de cor no linux ( xD ), sempre que eu preciso de alguma coisa, recorro ao nosso querido amigo Google
Eis que eu tava precisando montar uma hd (leia – partição) automáticamente, via fstab. Isto lógico, não tem segredo algum, é mto fácil… Trivial
Mas, eu encontrei uma “dica” muito bacana de como fazer…
Segue o link abaixo
Hoje a Canonical efetuou a inclusão do Adobe Flash Player 64-bits em seu repositório partner. Sendo assim, o aplicativo está disponível para download na Central de Programas do Ubuntu de quem tem o repositório habilitado, nas versões 11.04 e 11.10 do sistema operacional.
Isso põe fim a um dos maiores inconvenientes para os usuários da versão 64 bits do sistema operacional: a execução do Flash 32 bits através do “plugin wrapper“, que até então era responsável por torná-lo compatível com a versão amd64.
Instalação
Para efetuar a instalação do aplicativo, na Central de Programas do Ubuntu acesse o menu Editar > Canais de software. Na janela que abrir, clique na aba Outro software e marque o repositórioParceiros da Canonical.
Agora, basta buscar na Central de Programas por flashplugin. Instale o pacote Plug-in do Adobe Flash.
Referências
http://www.omgubuntu.co.uk/2011/10/flash-ubuntu-64-install-easily-1110/
Fonte: http://www.tiagohillebrandt.eti.br/blog/2011/10/adobe-flash-64-bits-disponibilizado-no-ubuntu/
Opa!
Achei um link bacana com os comandinhos para fazer o backup e restauração de banco de dados postgres.
Se googlar, acha um zilhão de links é lógico, mas esse eu achei bem organizadinho
Fica a dica
Abraços
Opa!!
O Blog está às moscas… Não tenho tido muito tempo e nem mesmo muita inspiração para postar, apesar de estar trabalhando com algumas coisas bem legais que dariam vários e vários posts…
Seguem mais uma “inutilidade”…
Screenshots do Ubuntu 11.10
http://www.jonobacon.org/2011/08/26/ubuntu-11-10-so-far-screenshot-tour/
Abraços!
Opa!!!
Bom, resolvi criar o artigo ou post (sei lá) pois tenho acompanhado na lista diversas dúvidas à este respeito.
O cabra quer criar usuários utilizando o User que o próprio Django oferece, mas com alguns campos que são pertinentes a aplicação dele.
Na própria documentação do Django, tem uma explicação bacana de como se fazer:
http://docs.djangobrasil.org/topics/auth.html#armazenando-informa-es-adicionais-sobre-usu-rios
Outro artigo muito bom (inglês) é este aqui.
http://scottbarnham.com/blog/2008/08/21/extending-the-django-user-model-with-inheritance
Eu implementei utilizando o artigo acima, só que ele apresenta um “problema”. Não sei se realmente é um bug do Django ou o que pode ser.
O fato é que mesmo ao se extender o Users do Django, quando você cria o novo usuário, a senha não é encriptada.
Perguntei na lista e fui aconselhado a sobrescrever o método save do User.
Não achei que fosse a melhor solução, mas no fim das contas, foi o que tive que fazer.
Como eu só utilizava a rotina de adição de usuários através do admin, ficou muito fácil de sobrescrever o método.
Eu criei uma classe padrão para o Admin dos meus usuários e todas as outras classes referentes extendiam dela
Ficou assim:
class defaultAdminModel(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
obj.set_password(obj.password)
obj.save()
As outras classes ficaram assim:
class AdminLocaisAtendimento(defaultAdminModel):
Enfim, é isto
Abraços!
Opa!
Não sei se o título foi claro, mas vou explicar o “problema” que tive e colocar o link da solução que eu encontrei no fantástico DjangoSnippets ^^
2 models relacionados e eu precisava filtrar no admin por um campo do model “pai” que não seu id ou instância.
( Acho que é isto xD )
Vamos exemplificar com códigos para ficar mais explicado ^^.
Model A:
class modelA(models.Model):
descricao = models.CharField(max_length = 30)
versao_dados = models.IntegerField(unique = True)
arquivo = models.FileField(upload_to='tempfolder')
class modelB(models.Model):
papai = models.ForeignKey(modelA) #Papai! kkkkk
codigo = models.IntegerField()
descricao = models.CharField(max_length = 100)
class Meta:
unique_together = (('rol', 'codigo'),)
Como você pode ver, se eu tentar cadastrar um modelA com a mesma versão já existente, o Django não deixará porque ele é único
Já no modelB é um pouco diferente. Estou utilizando o unique_together, onde ele verificará como um registro único a união de papai e código, ou seja, eu poderei ter vários códigos repetidos, desde que cada um pertença a um papai diferente! xD ( Eu me acho engraçado às vezes kkk )
Este é o comportamento que eu preciso na minha aplicação
Já no admin, eu precisava de um list_filter para o modelB que pudesse me mostrar a lista de versões cadastradas no modelA, e filtrar os dados do modelB de acordo com o que eu selecionar.
Ah tá!! Mas o Django não faz isto
–> (Damn it!) Bom, pelo menos não achei nada parecido
Então achei um snippet que faz workar! ^^
Aqui está o link da criança!
http://djangosnippets.org/snippets/2194/
No meu caso, eu coloquei o código dentro de uma pasta chamada utils, onde eu coloco algumas coisas que são peculiares a cada app.
O modelA ficou do mesmo jeito, já o modelB ficou assim:
class modelB(models.Model):
papai = models.ForeignKey(modelA) #Papai! kkkkk
papai.fk_filterspec = {'fk_field': 'versao_dados', }
codigo = models.IntegerField()
descricao = models.CharField(max_length = 100)
class Meta:
unique_together = (('rol', 'codigo'),)
Lembrando que é necessário importar o primeiro trecho que no meu caso, eu coloquei dentro de um arquivo que chamei de filterSpects, dentro da pasta utils da minha app.
Então ficou assim:
from app.utils.filterSpecs import FkFilterSpec FkFilterSpec.register_filterspec()
Já no admin, ficou assim:
list_filter = ('papai__versao_dados',)
Enfim, ficou bão ! ^^
Espero que seja útil pra mais alguém!!!
Abraços.objects.all()