Erro ao salvar no postgresql - ADD tenta salvar ID q ja existe

6 views
Skip to first unread message

Jose Carlos Vicente Pereira

unread,
May 30, 2015, 9:41:43 PM5/30/15
to web2py-us...@googlegroups.com
Ola, boa noite... as vezes ocorre esse erro:

http://pastebin.com/ra2rh7Wj

meu MODEL:
db.define_table("a_cadprofissao",
    Field("nome", length=128, notnull=True, label="Nome da Profissão"),
    auth.signature,
    format="%(nome)s"
    )

meu controller ADD:
def prof_new():
    form = SQLFORM(db.a_cadprofissao,  formstyle="divs", submit_button='Salvar', 
               fields=['nome'])

    form.custom.widget.nome['_class'] = 'form-control col-md-8'
    form.custom.widget.nome['_size'] = '90'

    if form.accepts(request.vars, session):        
        response.flash = 'Cadastrado realizado com sucesso!'
        redirect(URL(f='prof_list', args=request.args(0)))

    return dict(form=form)


minha view:
         {{=form.custom.begin}}
          <div class='form-group'>
            <label class='control-label col-md-2 col-md-offset-2' autofocus id="control-label" for="nome">Nome: </label>
            {{=form.custom.widget.nome}}   
          </div>

          <div class='panel panel-primary dialog-panel1'></div>

           <button class='btn-lg btn-primary' style='float:left' type='submit' id="button">{{=A(T("Salvar Dados"))}}</button>&nbsp;
           <button class='btn-lg btn-danger' style='float:right' type="reset" name="limpar" id="button">{{=A(T("Voltar"), _href=URL('geral','prof_list'))}}  </button>   
         {{=form.custom.end}}


dessa forma, as vezes uma inclusao ocorre sem problemas, mas as vezes o salvar tenta criar um ID q ja existe, poderiam me dizer porque ocorre isso??? ja que aprendi q o campo ID é padrao do sistema, e q o sistema faz o controle dele...


Matheus Suffi

unread,
Jun 1, 2015, 8:51:46 AM6/1/15
to web2py-us...@googlegroups.com
Cara eu não creio que isso seja problema no web2py..

o postgresql cria o id das tabelas usand um sequency e vc pode altera-lo, ex : sevc cria um registro na mao no post e coloca id 190 e o id atual do sequency é 189, o proximo registro que o web2py criar vai conflitar, sugiro q vc abra seu postgre e verifique o sequency dessa sua tabela e veja os proximos numeros que ele va gerar , talvez eles ja existam em sua tabela

Sugiro que use o Phppgadmin que é uma interface web do postgre , semelhante ao phpmyadmin
Reply all
Reply to author
Forward
0 new messages