Hello Jonas,
Can you show us your custom form, the one that does not work. Validation
and form processing are done before the view is execued therefore it cannot
affect form validation and processing. perhaps that is something in the
custom form that prevents error messages from being displayed.
I do not understand the second question. The index function returns all
records for each table.
Massimo
On Saturday, 15 December 2012 17:27:51 UTC-6, jonas wrote:
>
> Hi.
>
> I have a default form that is passed in view: {{=form}}
> using this validation and insertion works. but when I use a custom form
> none of that works. why?
> Also form.process().accepted works only when using default form.
>
> My second question is: when submitting the form I redirect to index, and
> all entries in the db are returned. Is that because i reuse the index
> function? Is there any way to clear all fields after a successful submit?
>
> the code:
>
> default.py:
>
> def index():
>
> query=db.blog.id>0
> res=db(query).select(orderby=~db.blog.date)
> query=db.about.id>0
> about=db(query).select()
> query=db.comments.post_id>0
> com=db(query).select(orderby=~db.comments.created_on)
>
> return dict(res=res,about=about,com=com,message=T('Everything should
> be made as simple as possible, but not simpler'))
>
> def comment():
>
> """ create comment form. Every comment is id locked to the specific
> post """
>
> post=db(db.blog.id==request.args(0)).select().first()
> db.comments.post_id.default=post.id
> form=crud.create(db.comments)
> if form.process().accepted:
> print 'form accepted'
> redirect(URL('index'))
> else:
> print 'not accepted'
> return dict(form=form)
>
> index.html:
>
> {{=A(TAG.i(_class="icon-plus-sign"), _rel="tooltip", _title="testing",
> _class="btn", _href='#', _onclick="jQuery('#uc').toggle();")}}
> <div id="uc">
> {{=LOAD('default','comment.load',args=result.id,ajax=True)}}
> </div>
>
> comment.load:
>
> {{=form}}
>
> thanks
>
--