By default, the "represent" attribute of a reference field is based on the "format" attribute of the table it references. So, you have two options -- you could either change the "format" attributes of the auth_user and auth_group tables:
db.auth_user._format = '%(first_name)s %(last_name)s' # notice the "id" field is excluded
or you could directly change the "represent" attributes of the auth_membership.user_id and auth_membership.group_id fields:
db.auth_membership.user_id.represent = lambda id, row: '%(first_name)s %(last_name)s' % db.auth_user(id)
Note, if you exclude the "id" field from the representation, two users with the same name will appear identically in the list (that's why the default representation includes the "id" -- in order to ensure a unique set of values).
Anthony