fixed a typo

On Saturday, August 25, 2012 2:52:17 PM UTC-4, pylix wrote:
>
> the problem i found after debugging is this... 
> here's the some code in the model 
>
> def build_email(form):
>     html_email = '<html>%s</html>' % BEAUTIFY(form.vars)
>     mail.send(to=['[email protected]'],
>         reply_to=form.vars.email,
>         subject='request' + str(form.vars.id), 
>         message=html_email)
>     session.id = form.vars.id
>
> def freequote():
>     form = SQLFORM(db.person)
>     if form.process(onvalidation=build_email).accepted:
>         redirect(URL(quotesuccess))
>     else:
>         response.flash = 'errors found'
>     return dict(form=form)
>
> the problem i see is that before the form is accepted,
> "id" does not exist, while all the other fields can
> be accessed with form.vars.field, in the code above
> form.vars.id = None so the email subject would
> be requestNone.
>
> when the onvalidation function is omitted
> and instead the freequote controller directly calls the function after
> the form is processed, form.vars.id works as expected
>
> I misinterpreted the purpose of onvalidation
> i'd like to send emails after not before forms
> are validated so i have no more issues.
>
> but this all leads me to the realization that web2py does
> not give a value to the form field of a SQLFORM until the form
> is processed, is there a request.vars.id that can
> be used before processing?
>
>
>
>
> On Saturday, August 25, 2012 9:43:48 AM UTC-4, Anthony wrote:
>>
>> Can you show your code? It should be in form.vars.id after submission.
>>
>> Anthony
>>
>> On Saturday, August 25, 2012 9:16:42 AM UTC-4, pylix wrote:
>>>
>>> I'm having trouble getting the server to access the id field upon 
>>> submission of my SQLFORM
>>> I did not define my own id field in the model, i have no issue with the 
>>> auto-created one except that
>>> I can't figure out how to store the id in a variable for view use. 
>>>
>>> all other fields are accessible using forms.vars i.e form.vars.name, 
>>> form.vars.email, etc..
>>> but form.vars.id always ends up as None.
>>>
>>> The id field values are recorded and can be queried
>>> or viewed using appadmin database administration
>>> but, what I'm trying to do is use the Id# in a view that
>>> i want to display after form submission.
>>>
>>> is there a special way to get the id# that the
>>> record being inserted to database would be
>>> if it validates?
>>>
>>

-- 



Reply via email to