well, there's a reason why those are called "database callbacks". Those are 
the lower-side of things when you need to put a check somewhere.
They have nothing to do with forms or grids, and IMHO, they should stay as 
they are until a proper "resolution" is found for the common issue of 
multiple pkeys, unique constraints, and so on.... 

On Monday, August 18, 2014 5:55:43 PM UTC+2, Paolo Valleri wrote:
>
> The first issue is that, I don't know a simple way (using sqlform.grid) to 
> return to the form even if the validation has passed successfully. The 
> second is to display the error message.
> Maybe we can add an error_message parameter to _before_* ?
>
>
>  Paolo
>
>
> 2014-08-18 17:35 GMT+02:00 Anthony <abas...@gmail.com <javascript:>>:
>
>> So, you want to add some logic to SQLFORM.accepts so if an insert or 
>> update fails after validation passes, the form still reports an error? 
>> Would you specify the error message in the call to SQLFORM.accepts?
>>
>> Anthony
>>
>>
>> On Monday, August 18, 2014 11:25:32 AM UTC-4, Paolo Valleri wrote:
>>>
>>> Hi all, 
>>> a common problem is a constraint on multiple fields. There are few ways 
>>> to handle this situation, I tried by using the _before_* callbacks.
>>> Currently, if the the callback return True (which means that the 
>>> constrains validation is failed) the sqlform.grid doesn't raise any message 
>>> or notification.
>>> Is that the correct behavior?
>>>
>>> An example is that:
>>> def index():
>>>     def some_logic(f): return True
>>>     db.define_table('station',
>>>         Field('name'),
>>>     )
>>>     db.station._before_insert.append(some_logic)
>>>     grid = SQLFORM.grid(db.station)
>>>
>>>     return {'grid':grid}
>>> By using this example, a record will be never stored but the grid will 
>>> 'correctly' return every time. If you have many items, it will be difficult 
>>> to understand what really happened.
>>> I know that I can add session.flash = 'error message' in the some_logic 
>>> function to display a flash message in case of error but even in this case 
>>> the user will lose the form with the filled fields.
>>>
>>> From my point of view, a possible alternative scenario would be to 
>>> 'stay' in the form and to show to the user a general error message on top 
>>> of the form.
>>> Any idea?
>>>
>>> Paolo
>>>
>>  -- 
>> 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 a topic in the 
>> Google Groups "web2py-users" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/web2py/BB32aGzGtuQ/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> web2py+un...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to