Postagens

Mostrando postagens de setembro, 2020

Problemas com migrações

Neste artigo vamos falar sobre migrações no Web2py. Todos sabemos que o W2P faz proezas com a DAL mas as vezes temos alguns percalços no caminho. Para fazer o controle do estado das migrações é criado por padrão na pasta databases alguns arquivos com a extensão '.table'. Esses arquivos são responsáveis por armazenar o estado atual da tabela e logo eles são modificados quando fazemos alterações na definição de tabela no código python. De fato esses arquivos são muito úteis porém há momentos em que eles começam a dar problemas. Primeiro de tudo vamos começar mudando nosso código na função define_table passando um argumento migrate='nome_tabela.table'. db.define_table( 'tabela1' ,     Field( 'nome_campo' ,  'string' ),      migrate = 'tabela1.table' ) Isso fará com que o arquivo .table da tabela1 contenha seu nome, isso facilita evita aqueles arquivos redundantes no diretório. O próximo passo é entender como funcionam as migrações do constru

Placeholders em Campos de SQLFORM

Olá, nesse post mostraremos uma forma simples mas bem útil de adicionar placeholders em SQLFORMs no web2py. Um placeholder é aquela dica que fica dentro do input. <input type="text" name="xyz" placeholder="Diga seu nome" /> Eles servem para auxiliar o usuário, há casos onde usar labels como complemento não fica legal, ou ocupa espaço. Então os placeholders entram como um auxiliar. Uma maneira mais profissional e que está diretamente ligada no construtor Field de define_table são criar widgets customizados. def widget (** kwargs ): return lambda field , value , kwargs = kwargs : SQLFORM . widgets [ field . type ]. widget ( field , value , ** kwargs )| db . define_table ( 'reference' , Field ( 'is_enabled' , 'boolean' , default = True , label = T ( 'Enabled' )), Field ( 'name' , 'string' , required = True , length = 256 , label = T ( 'Name' ), widget = widget ( _placeholder = 'One-