This seems to fix the problem, but I don't think this is a good
solution. Hopefully this patch makes the issue a little clearer though:

Index: django/views/generic/create_update.py
===================================================================
--- django/views/generic/create_update.py       (revision 632)
+++ django/views/generic/create_update.py       (working copy)
@@ -85,7 +85,7 @@
     # Look up the object to be edited
     lookup_kwargs = {}
     if object_id:
-        lookup_kwargs['%s__exact' % mod.Klass._meta.pk.name] =
object_id
+        lookup_kwargs['pk'] = object_id
     elif slug and slug_field:
         lookup_kwargs['%s__exact' % slug_field] = slug
     else:
@@ -96,7 +96,7 @@
     except ObjectDoesNotExist:
         raise Http404("%s.%s does not exist for %s" % (app_label,
module_name, lookup_kwargs))

-    manipulator = mod.ChangeManipulator(object.id)
+    manipulator = mod.ChangeManipulator(getattr(object,
mod.Klass._meta.pk.column))

     if request.POST:
         new_data = request.POST.copy()
@@ -134,7 +134,7 @@
         else:
             c[key] = value
     response = HttpResponse(t.render(c))
-    populate_xheaders(request, response, app_label, module_name,
getattr(object, object._meta.pk.name))
+    populate_xheaders(request, response, app_label, module_name,
getattr(object, object._meta.pk.column))
     return response

 def delete_object(request, app_label, module_name,
post_delete_redirect,

Reply via email to