After some time and several trays I get solution in view for custom form I used {{=XML(form.custom.begin.replace('action=""', 'action="people"'))}}
and it produce code in source: <form action="people" enctype="multipart/form-data" method="post"> and my form now work and I have not empty action field Thanks everybody for help - - Miroslav Gojic - - On Sun, Oct 16, 2011 at 19:41, Anthony <abasta...@gmail.com> wrote: > I see the problem -- setting the '_action' attribute after the form is > created doesn't affect form.custom.begin, which is what you are using. > Instead, try this in the view: > > {{=form.custom.begin.replace('action=""', 'action="%s"' % URL()}} > > URL() should generate the URL of the current action (though it won't > include args and vars, so you'll have to add those explicitly if your URL > happens to use them). > > However, I'm not sure it's necessary to have a non-empty action for valid > HTML5 -- see #9 here: > http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#form-submission-algorithm. > An empty action appears to be valid. > > Anthony > > On Sunday, October 16, 2011 12:50:29 PM UTC-4, miroslavgojic wrote: >> >> I try next example and all mentioned options: >> >> def people(): >> form = crud.create(db.person,next=**URL('people'),message=T("**record >> created")) >> form['_action'] = URL('index') >> return dict(form = form) >> >> but my action field in form is empty. >> > What do you mean the action field is empty? When I try the exact code > above, I get the following in the resulting source html: > > <form action="/testapp/default/index" enctype="multipart/form-data" method > ="post"> > > Are you expecting something else? > > - - Miroslav Gojic - - >> >> >> On Sun, Oct 16, 2011 at 16:09, Anthony <abas...@gmail.com> wrote: >> > On Sunday, October 16, 2011 3:23:01 AM UTC-4, miroslavgojic wrote: >> >> >> >> I tray to put mentioned examples into controller after my form >> definition >> >> >> >> form['_action'] = URL(index') >> >> form.update(_action=URL('**index')) >> >> form.attributes.update(_**action=URL('index')) >> >> >> >> but it is not happened anything, >> > >> > What exactly happened? I assume this does change the form action as >> > expected, but then nothing happens when you submit the form? When you >> change >> > the form action, the form will get submitted to that action. If you >> submit >> > the form to 'index', then your 'index' function will have to process the >> > submitted form -- if there's no code in your 'index' function to do so, >> then >> > nothing will happen. In web2py, forms are typically self-submitting >> (i.e., >> > submitted to the action that generated them). Is there a reason you want >> to >> > submit the form to a different action? >> > >> >> >> >> and if I change my value I just get error >> >> >> >> form.update(_action=my_value) - this make error >> > >> > What is my_value? Is it a URL? >> > >> >> >> >> In view after beginning of form.custom.start I tray next similar code >> >> {{=form['_action'] = URL(index')}} >> > >> > I assume you mean form.custom.begin? Anyway, it will not work to change >> the >> > form action after that because form.custom.begin actually inserts the >> <form> >> > tag with the action specified -- so changing the action after will not >> > affect the way the form is serialized. >> > Anthony >> > >> >>