this is not the issue previously posted by somebody else.
I think I found a bug with Manager get_or_create and foreign key
fields when specifying with foreigntable__id
class ObjectPermission(models.Model):
permission = models.CharField(blank=False, max_length=20)
user = models.ForeignKey(User,blank=True,null=True)
objects = ObjectPermissionManager()
note that user may be null
class ObjectPermissionManager(models.Manager):
def set_perm(self,permission,user_id):
import pdb; pdb.set_trace()
(perm,created) = self.get_or_create
(permission=permission,user__id=user_id)
(Pdb) user_id
17L
# user_id is incorrect when using get_or_create
(Pdb) self.get_or_create(permission=permission,user_id=user_id)
*** FieldError: Cannot resolve keyword 'user_id' into field. Choices
are: id, permission, user
# using user__id
(Pdb) (op,created) = self.get_or_create
(permission=permission,user__id=user_id)
(Pdb) op
# but user_id was set to null
(Pdb) op.user_id
(Pdb) op.user
here is the crux of the issue :
# if using create, then user_id is correct
(Pdb) self.create(permission=permission,user_id=user_id)
# if using get, then user__id is correct
(Pdb) self.get(permission=permission,user__id=user_id)
*** DoesNotExist: ObjectPermission matching query does not exist.
If someone else can confirm or deny that its a bug then I'll
investigate further and maybe cure it.
thanks
-flix
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~--~~~~--~~--~--~---