[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-08 Thread Cliff Kachinske
Shouldn't have to commit, since I'm not working from the console.

On Thursday, November 8, 2012 5:21:17 AM UTC-5, Johann Spies wrote:
>
> On Thursday, 8 November 2012 05:58:50 UTC+2, Cliff Kachinske wrote:
>>
>> Version 2.0.9, Postgres 9.X, Psycopg2
>>
>> I don't know what else to tell you, except I know the record was there 
>> after the failed delete attempt.
>>
>>
> Did you do a 
> db.commit() ?
>
> Regards
> Johann
>

-- 





[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-08 Thread Niphlod
try with 2.2.1, it's the one I tested

On Thursday, November 8, 2012 4:58:50 AM UTC+1, Cliff Kachinske wrote:
>
> Version 2.0.9, Postgres 9.X, Psycopg2
>
> I don't know what else to tell you, except I know the record was there 
> after the failed delete attempt.
>
> Today the same syntax failed in another location in my code, with the same 
> result.  I thought I caught them all, but apparently not.
>
> On Wednesday, November 7, 2012 8:32:59 AM UTC-5, Niphlod wrote:
>>
>> but I tried in a shell and it doesn't raise an exception if the record 
>> exists (and it gets correctly deleted too)
>>
>> On Wednesday, November 7, 2012 1:59:48 PM UTC+1, Cliff Kachinske wrote:
>>>
>>> The record was there.
>>>
>>> That's the problem.  The shortcut was erroneously reporting that it was 
>>> gone.
>>>
>>> On Tuesday, November 6, 2012 2:40:38 PM UTC-5, Niphlod wrote:

 del db.sometable[something] requires that the id == something exists.
 db(db.sometable.id == something).delete() instead returns the number 
 of records deleted if there was any, otherwise it simply deletes nothing.

 On Tuesday, November 6, 2012 8:14:33 PM UTC+1, Cliff Kachinske wrote:
>
> This code works.  Note the commented out line.
>
> for v in form.vars:
> if v[:7] == 'remove_' and form.vars[v] == 'on':
> # del db.class_users[v[7:]]
> db(db.class_users.id==v[7:]).delete()
>
>
> This code, which should be equivalent, raises the exception shown below.
>
> for v in form.vars:
> if v[:7] == 'remove_' and form.vars[v] == 'on':
> del db.class_users[v[7:]]
>
>
> Traceback (most recent call last):
>   File "/home/cjk/w2p09/web2py/gluon/restricted.py", line 209, in 
> restricted
> exec ccode in environment
>   File 
> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
> ,
>  line 371, in 
>   File "/home/cjk/w2p09/web2py/gluon/globals.py", line 186, in 
> self._caller = lambda f: f()
>   File "/home/cjk/w2p09/web2py/gluon/tools.py", line 2809, in f
> return action(*a, **b)
>   File 
> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
> ,
>  line 165, in list_
> if form.process(onvalidation=do_updates).accepted:
>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2108, in process
> self.validate(**kwargs)
>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2055, in validate
> if self.accepts(**kwargs):
>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 1969, in accepts
> onvalidation(self)
>   File 
> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
> ,
>  line 134, in do_updates
> del db.class_users[v[7:]]
>   File "/home/cjk/w2p09/web2py/gluon/dal.py", line 7691, in __delitem__
> raise SyntaxError, 'No such record: %s' % key
> SyntaxError: No such record: 7
>
>

-- 





[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-08 Thread Johann Spies
On Thursday, 8 November 2012 05:58:50 UTC+2, Cliff Kachinske wrote:
>
> Version 2.0.9, Postgres 9.X, Psycopg2
>
> I don't know what else to tell you, except I know the record was there 
> after the failed delete attempt.
>
>
Did you do a 
db.commit() ?

Regards
Johann

-- 





[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-07 Thread Cliff Kachinske
Version 2.0.9, Postgres 9.X, Psycopg2

I don't know what else to tell you, except I know the record was there 
after the failed delete attempt.

Today the same syntax failed in another location in my code, with the same 
result.  I thought I caught them all, but apparently not.

On Wednesday, November 7, 2012 8:32:59 AM UTC-5, Niphlod wrote:
>
> but I tried in a shell and it doesn't raise an exception if the record 
> exists (and it gets correctly deleted too)
>
> On Wednesday, November 7, 2012 1:59:48 PM UTC+1, Cliff Kachinske wrote:
>>
>> The record was there.
>>
>> That's the problem.  The shortcut was erroneously reporting that it was 
>> gone.
>>
>> On Tuesday, November 6, 2012 2:40:38 PM UTC-5, Niphlod wrote:
>>>
>>> del db.sometable[something] requires that the id == something exists.
>>> db(db.sometable.id == something).delete() instead returns the number of 
>>> records deleted if there was any, otherwise it simply deletes nothing.
>>>
>>> On Tuesday, November 6, 2012 8:14:33 PM UTC+1, Cliff Kachinske wrote:

 This code works.  Note the commented out line.

 for v in form.vars:
 if v[:7] == 'remove_' and form.vars[v] == 'on':
 # del db.class_users[v[7:]]
 db(db.class_users.id==v[7:]).delete()


 This code, which should be equivalent, raises the exception shown below.

 for v in form.vars:
 if v[:7] == 'remove_' and form.vars[v] == 'on':
 del db.class_users[v[7:]]


 Traceback (most recent call last):
   File "/home/cjk/w2p09/web2py/gluon/restricted.py", line 209, in 
 restricted
 exec ccode in environment
   File 
 "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
 ,
  line 371, in 
   File "/home/cjk/w2p09/web2py/gluon/globals.py", line 186, in 
 self._caller = lambda f: f()
   File "/home/cjk/w2p09/web2py/gluon/tools.py", line 2809, in f
 return action(*a, **b)
   File 
 "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
 ,
  line 165, in list_
 if form.process(onvalidation=do_updates).accepted:
   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2108, in process
 self.validate(**kwargs)
   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2055, in validate
 if self.accepts(**kwargs):
   File "/home/cjk/w2p09/web2py/gluon/html.py", line 1969, in accepts
 onvalidation(self)
   File 
 "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
 ,
  line 134, in do_updates
 del db.class_users[v[7:]]
   File "/home/cjk/w2p09/web2py/gluon/dal.py", line 7691, in __delitem__
 raise SyntaxError, 'No such record: %s' % key
 SyntaxError: No such record: 7



-- 





[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-07 Thread Niphlod
but I tried in a shell and it doesn't raise an exception if the record 
exists (and it gets correctly deleted too)

On Wednesday, November 7, 2012 1:59:48 PM UTC+1, Cliff Kachinske wrote:
>
> The record was there.
>
> That's the problem.  The shortcut was erroneously reporting that it was 
> gone.
>
> On Tuesday, November 6, 2012 2:40:38 PM UTC-5, Niphlod wrote:
>>
>> del db.sometable[something] requires that the id == something exists.
>> db(db.sometable.id == something).delete() instead returns the number of 
>> records deleted if there was any, otherwise it simply deletes nothing.
>>
>> On Tuesday, November 6, 2012 8:14:33 PM UTC+1, Cliff Kachinske wrote:
>>>
>>> This code works.  Note the commented out line.
>>>
>>> for v in form.vars:
>>> if v[:7] == 'remove_' and form.vars[v] == 'on':
>>> # del db.class_users[v[7:]]
>>> db(db.class_users.id==v[7:]).delete()
>>>
>>>
>>> This code, which should be equivalent, raises the exception shown below.
>>>
>>> for v in form.vars:
>>> if v[:7] == 'remove_' and form.vars[v] == 'on':
>>> del db.class_users[v[7:]]
>>>
>>>
>>> Traceback (most recent call last):
>>>   File "/home/cjk/w2p09/web2py/gluon/restricted.py", line 209, in restricted
>>> exec ccode in environment
>>>   File 
>>> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
>>> ,
>>>  line 371, in 
>>>   File "/home/cjk/w2p09/web2py/gluon/globals.py", line 186, in 
>>> self._caller = lambda f: f()
>>>   File "/home/cjk/w2p09/web2py/gluon/tools.py", line 2809, in f
>>> return action(*a, **b)
>>>   File 
>>> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
>>> ,
>>>  line 165, in list_
>>> if form.process(onvalidation=do_updates).accepted:
>>>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2108, in process
>>> self.validate(**kwargs)
>>>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2055, in validate
>>> if self.accepts(**kwargs):
>>>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 1969, in accepts
>>> onvalidation(self)
>>>   File 
>>> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
>>> ,
>>>  line 134, in do_updates
>>> del db.class_users[v[7:]]
>>>   File "/home/cjk/w2p09/web2py/gluon/dal.py", line 7691, in __delitem__
>>> raise SyntaxError, 'No such record: %s' % key
>>> SyntaxError: No such record: 7
>>>
>>>

-- 





[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-07 Thread Cliff Kachinske
The record was there.

That's the problem.  The shortcut was erroneously reporting that it was 
gone.

On Tuesday, November 6, 2012 2:40:38 PM UTC-5, Niphlod wrote:
>
> del db.sometable[something] requires that the id == something exists.
> db(db.sometable.id == something).delete() instead returns the number of 
> records deleted if there was any, otherwise it simply deletes nothing.
>
> On Tuesday, November 6, 2012 8:14:33 PM UTC+1, Cliff Kachinske wrote:
>>
>> This code works.  Note the commented out line.
>>
>> for v in form.vars:
>> if v[:7] == 'remove_' and form.vars[v] == 'on':
>> # del db.class_users[v[7:]]
>> db(db.class_users.id==v[7:]).delete()
>>
>>
>> This code, which should be equivalent, raises the exception shown below.
>>
>> for v in form.vars:
>> if v[:7] == 'remove_' and form.vars[v] == 'on':
>> del db.class_users[v[7:]]
>>
>>
>> Traceback (most recent call last):
>>   File "/home/cjk/w2p09/web2py/gluon/restricted.py", line 209, in restricted
>> exec ccode in environment
>>   File 
>> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
>> ,
>>  line 371, in 
>>   File "/home/cjk/w2p09/web2py/gluon/globals.py", line 186, in 
>> self._caller = lambda f: f()
>>   File "/home/cjk/w2p09/web2py/gluon/tools.py", line 2809, in f
>> return action(*a, **b)
>>   File 
>> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
>> ,
>>  line 165, in list_
>> if form.process(onvalidation=do_updates).accepted:
>>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2108, in process
>> self.validate(**kwargs)
>>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2055, in validate
>> if self.accepts(**kwargs):
>>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 1969, in accepts
>> onvalidation(self)
>>   File 
>> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
>> ,
>>  line 134, in do_updates
>> del db.class_users[v[7:]]
>>   File "/home/cjk/w2p09/web2py/gluon/dal.py", line 7691, in __delitem__
>> raise SyntaxError, 'No such record: %s' % key
>> SyntaxError: No such record: 7
>>
>>

-- 





[web2py] Re: Shortcut not working: del db.mytable[id]

2012-11-06 Thread Niphlod
del db.sometable[something] requires that the id == something exists.
db(db.sometable.id == something).delete() instead returns the number of 
records deleted if there was any, otherwise it simply deletes nothing.

On Tuesday, November 6, 2012 8:14:33 PM UTC+1, Cliff Kachinske wrote:
>
> This code works.  Note the commented out line.
>
> for v in form.vars:
> if v[:7] == 'remove_' and form.vars[v] == 'on':
> # del db.class_users[v[7:]]
> db(db.class_users.id==v[7:]).delete()
>
>
> This code, which should be equivalent, raises the exception shown below.
>
> for v in form.vars:
> if v[:7] == 'remove_' and form.vars[v] == 'on':
> del db.class_users[v[7:]]
>
>
> Traceback (most recent call last):
>   File "/home/cjk/w2p09/web2py/gluon/restricted.py", line 209, in restricted
> exec ccode in environment
>   File 
> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
> ,
>  line 371, in 
>   File "/home/cjk/w2p09/web2py/gluon/globals.py", line 186, in 
> self._caller = lambda f: f()
>   File "/home/cjk/w2p09/web2py/gluon/tools.py", line 2809, in f
> return action(*a, **b)
>   File 
> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
> ,
>  line 165, in list_
> if form.process(onvalidation=do_updates).accepted:
>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2108, in process
> self.validate(**kwargs)
>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 2055, in validate
> if self.accepts(**kwargs):
>   File "/home/cjk/w2p09/web2py/gluon/html.py", line 1969, in accepts
> onvalidation(self)
>   File 
> "/home/cjk/w2p09/web2py/applications/Training/controllers/class_users.py" 
> ,
>  line 134, in do_updates
> del db.class_users[v[7:]]
>   File "/home/cjk/w2p09/web2py/gluon/dal.py", line 7691, in __delitem__
> raise SyntaxError, 'No such record: %s' % key
> SyntaxError: No such record: 7
>
>

--