"better" is relative. it is less code. (i dont think you need that
setattr, just do it directly.)
and i think you'd just use:
j.keys()
you wont seem the attrs in the autocompletion because they are dynamic.
-b

On Wed, May 14, 2008 at 12:41 PM, Paul Jobs <[EMAIL PROTECTED]> wrote:
>
>  class User(Storage):
>
>  def __init__(id):
>  self.userrow=db.query('select * from users where id=
> $self._id',vars=locals())[0]
>              for k in self.userrow.keys():
>                  setattr(self,k,self.userrow[k])
>                  #self.k=self.userrow[k]
>
>  both setattra and self.k = self.userrow methods are not working after
> inheriting from storage
>
>  >>> j.
>  j.__class__         j.__gt__            j.__repr__
> j.getliveuserrow    j.popitem
>  j.__cmp__           j.__hash__          j.__setattr__       j.getphotos
> j.publishfeed
>  j.__contains__      j.__init__          j.__setitem__       j.getuserrow
> j.save
>  j.__delattr__       j.__iter__          j.__str__           j.has_key
> j.setdefault
>  j.__delitem__       j.__le__            j.__weakref__       j.items
> j.setlastlogin
>  j.__dict__          j.__len__           j.clear             j.iteritems
> j.setlastlogin300
>  j.__doc__           j.__lt__            j.copy              j.iterkeys
> j.update
>  j.__eq__            j.__module__        j.fromkeys          j.itervalues
> j.values
>  j.__ge__            j.__ne__            j.get               j.keys
>  j.__getattr__       j.__new__           j.getfeeds
> j.kissallfriends
>  j.__getattribute__  j.__reduce__        j.getfriends
> j.pokeallfriends
>  j.__getitem__       j.__reduce_ex__     j.getlastloginstr   j.pop
>
>
>  without Storage
>  class User:
>  all the column elements  are accessible as j.htmlcodes j.first_name and so
> on
>  j.
>  j.__class__                 j.hotmail                   j.number_userpics
>  j.__doc__                   j.htmlcodes                 j.number_uservideos
>  j.__init__                  j.id                        j.number_votes
>  j.__module__                j.interests                 j.pageviews
>  j.aim                       j.ip                        j.password
>  j.books                     j.kissallfriends            j.pokeallfriends
>  j.city                      j.last_login                j.profilepic
>  j.created                   j.last_name                 j.publishfeed
>  j.dob                       j.liketomeet                j.rating
>  j.email                     j.movies                    j.rawpassword
>  j.email_subscribe           j.music                     j.save
>  j.favoritestuff             j.myrand                    j.setlastlogin
>  j.first_name                j.number_activities         j.setlastlogin300
>  j.gender                    j.number_comments           j.site
>  j.getfeeds                  j.number_communities        j.skype
>  j.getfriends                j.number_friends            j.television
>  j.getlastloginstr           j.number_pages              j.userid
>  j.getliveuserrow            j.number_pictures           j.username
>  j.getphotos                 j.number_polls              j.userrow
>  j.getuserrow                j.number_posts              j.validuser
>  j.groups                    j.number_useraudios         j.vanity
>  j.hash                      j.number_usermessages       j.yahoo
>  j.heroes                    j.number_usermessages_sent  j.zip
>
>
>  Brent Pedersen wrote:
>  i think you have it all, just have User be inherit from Storage:
>
> from web.utils import Storage
> class User(Storage):
>  def __init__(....)
>
> -brent
>
>
>
> On Wed, May 14, 2008 at 12:45 AM, Paul <[EMAIL PROTECTED]> wrote:
>
>
>  im trying to create a class user
>  so that
>
>  i can do
>
>  r=User(1)
>
>
>  r._user.keys()
>  ['rating', 'last_name', 'pageviews', 'ip', 'number_polls', 'site',
>  'myrand', 'hotmail', 'number_activities', 'skype', 'id', 'city',
>  'rawpassword', 'number_useraudios', 'zip', 'number_votes',
>  'last_login', 'number_userpics', 'music', 'email', 'number_pages',
>  'username', 'number_posts', 'hash', 'number_comments',
>  'number_pictures', 'first_name', 'yahoo', 'groups', 'heroes',
>  'favoritestuff', 'number_usermessages_sent', 'vanity', 'interests',
>  'television', 'number_uservideos', 'created', 'dob', 'gender',
>  'number_friends', 'liketomeet', 'htmlcodes', 'aim', 'movies',
>  'password', 'books', 'profilepic', 'number_usermessages',
>  'email_subscribe', 'number_communities']
>
>  so i want this to become
>
>  r.rating
>  r.last_name
>  r.pageviews and so on
>  r.username
>  r.photos()
>  and so on
>
>  but
>
>  i want to set the keys of the user row as the keys of User self
>  but i m not sure how to do it
>
>  for i in self._user.keys():
>  self[i]=self._user[i]
>
>  gives an error
>  Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "api.py", line 40, in __init__
>  self[i]=self._user[i]
>  AttributeError: instance has no attribute '__setitem__'
>
>  You can do something like
>
>  self.update(_user)
>
>  doesnt work either
>  Traceback (most recent call last):
>  File "<stdin>", line 1, in <module>
>  File "api.py", line 39, in __init__
>  self.update(self._user)
>  AttributeError: user instance has no attribute 'update'
>
>  Any thoughts on how to set this?
>
>  class User:
>  """user object
>  """
>
>  def __init__(self, id):
>  self._id = id
>  self._user=db.query('select * from users where id=
>  $id',vars=locals())
>  if not self._user:
>  self._validuser=False
>  self._username=''
>  self._firstname=''
>  self._lastname=''
>  self._dob=''
>  self._gender=''
>  self._sex=''
>  else:
>  self._user=self._user[0]
>  self._validuser=True
>  self._username=self._user.username
>  self._firstname=self._user.first_name
>  self._lastname=self._user.last_name
>  self._dob=self._user.dob
>  self._gender=self._user.gender
>  self._sex=self._user.gender
>  for i in self._user.keys():
>  self[i]=self._user[i]
>  def userrow(self):
>  return db.query('select * from users where id=
>  $self._id',vars=locals())[0]
>  def photos(self):
>  return db.query('select pic,id, username from userpics where
>  user_id=$self._id',vars=locals())
>  >
>
>
>
>
>
>  >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/webpy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to