On Jan 2, 2011, at 11:04 AM, Rick wrote: > > Thanks, I changed the code to this: > Users: > > ==in admin.html== > <br> > {{for record in records:}} > {{=record.username}} : {{=record.password}} > [ > {{session.username=record.username}} > <a href="#" onclick="ajax('{{=URL('deleteusr')}}',[],'')">Delete this > user</a> > ]<br> > {{pass}} > </div> > > ==in a controller file== > def deleteusr(): > db(custom_auth_table.username==session.username).delete() > return 'the record has been deleted' > > ...but I don't know how to reload the page automatically after > deleting a user. Any ideas?
The easiest way, in this case, is not to use ajax. Just link directly to your deleteusr function. Something like this: def deleteusr(): db(custom_auth_table.username==session.username).delete() session.flash('the record has been deleted') redirect(wherever) On Jan 2, 5:13 pm, Jonathan Lundell <jlund...@pobox.com> wrote: >> On Jan 2, 2011, at 7:01 AM, Rick wrote: >> >> >> >>> I changed the code but it still doesn't work: >> >> Here's a fragment of my code that I use to delete a user. It's not ajax, but >> you'll get the idea: >> >> ut = auth.settings.table_user >> uu = urow.auth_user >> ... >> if not db(ut.username == username).count(): >> ...complain and redirect... >> auth.del_group(auth.user_group(uu.id)) # uu.id is the user id >> I'm deleting >> db(ut.username == username).delete() >> >> If you look at auth.del_group, you'll see that it does quite a bit of work >> to clean a user out of the group tables. I think I picked up this logic from >> the admin app, but I don't quite remember. >> >> I think it'd be nice if auth had a comprehensive delete-user function. >> >> >> >> >> >> >> >> >> >>> ==admin.html== >>> {{extend 'layout.html'}} >>> Add a user: <br> >>> {{=form}} >>> <br><br> >>> Users: >>> <br> >>> {{for record in records:}} >>> {{=record.username}} : {{=record.password}} >>> [ >>> <a href="#" >>> onclick="ajax('{{=URL('db(auth.settings.table_user_name==record.username).d >>> elete()')}}', >>> [],'')">Delete this user</a> >>> ] >>> {{pass}} >>> ============ >> >>> ==Here is some code from models/db.py== >>> auth = Auth(globals(), db) >> >>> db.define_table( >>> auth.settings.table_user_name, >>> Field('username'), >>> Field('password'), >>> Field('registration_key', default='')) >> >>> auth.define_tables() >> >>> custom_auth_table = db[auth.settings.table_user_name] # get the >>> custom_auth_table >>> ====== >> >>> On Dec 30 2010, 6:21 pm, Rick <sababa.sab...@gmail.com> wrote: >>>> Hi, >> >>>> I don't know if the way I add users is proper, but it works. Now I try >>>> to write a <a> tag for deleting users, and it doesn't work. Here is >>>> the code: >> >>>> ==in a controller file== >>>> def admin(): >>>> records = db().select(custom_auth_table.ALL, >>>> orderby=custom_auth_table.username) >>>> #records = SQLFORM(custom_auth_table, user, deletable=True) >>>> form = SQLFORM(db[auth.settings.table_user_name]) >>>> if form.accepts(request.post_vars, session): >>>> session.flash = 'Address saved.' >>>> redirect(URL('admin')) >>>> return dict(form=form, records=records) >>>> ======== >> >>>> ==admin.html== >>>> {{extend 'layout.html'}} >>>> Add a user: <br> >>>> {{=form}} >>>> <br><br> >>>> Users: >>>> <br> >>>> {{for record in records:}} >>>> {{=record.username}} : {{=record.password}} >>>> [ >>>> <a href="#" >>>> onclick="ajax('{{=URL('db[auth.remove.record.username]')}}', >>>> [],'')">Delete this user</a> >>>> ] >>>> <br> >>>> {{pass}} >>>> ======== >> >>>> Thanks in advance for help