I'm trying to expose a form with 2 SQLite tables behind it. I read the
documentation,
did as recommended and got the following error:
Traceback (most recent call last):
File "/home/joao/Desktop/web2py/gluon/restricted.py", line 219, in restricted
exec(ccode, environment)
File "/home/joao/Desktop/web2py/applications/vr/controllers/default.py"
<http://127.0.0.1:8000/admin/default/edit/vr/controllers/default.py>, line 101,
in <module>
File "/home/joao/Desktop/web2py/gluon/globals.py", line 409, in <lambda>
self._caller = lambda f: f()
File "/home/joao/Desktop/web2py/applications/vr/controllers/default.py"
<http://127.0.0.1:8000/admin/default/edit/vr/controllers/default.py>, line 55,
in register_student
form = SQLFORM.factory(db.Pessoa,db.Aluno)
File "/home/joao/Desktop/web2py/gluon/sqlhtml.py", line 1922, in factory
return SQLFORM(DAL(None).define_table(table_name, *[field.clone() for field
in fields]),
AttributeError: 'Table' object has no attribute 'clone'
These are my controller and model:
Model:
db.define_table('Pessoa',
Field('nome',required=True,notnull=True),
Field('cpf',required=False,notnull=True,length=11),
Field('data_de_nascimento',type='date',required=False,notnull=True),
Field('cep',notnull=True,length=8),
Field('uf',notnull=True,length=2),
Field('pai',notnull=True),
Field('mae',notnull=True),
Field('identidade',notnull=True,length=13),
Field('expedicao_identidade',type='date',required=False,notnull=True),
Field('tipo_sanguineo',notnull=True,length=3),
Field('orgao_emissor',notnull=True,length=20),
Field('doador',type='boolean', notnull=True),
Field('origem',notnull=True,length=40),
Field('observacao',notnull=True),
auth.signature,
)
db.define_table('Aluno',
Field('pessoa_id', 'reference Pessoa', writable=False, readable=False),
# Field('nota_fiscal_id', 'reference Nota_fiscal', writable=False,
readable=False),
Field('matricula', notnull=True, length=7),
Field('renach', notnull=True, length=40),
Field('categoria', notnull=True, length=5),
Field('servico', notnull=True),
Field('status', notnull=True),
auth.signature,
)
Controller:
def register_student():
form = SQLFORM.factory(db.Pessoa,db.Aluno)
if form.process().accepted:
id = db.Pessoa.insert(**db.Pessoa._filter_fields(form.vars))
form.vars.client=id
id = db.Aluno.insert(**db.Aluno._filter_fields(form.vars))
response.flash='Aluno cadastrado com sucesso!'
return dict(form=form)
As I said, the controller is like what I read in documentation.
If someone can help I'll be grateful.
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.