使用Django通用视图从create_object创建的新对象中检索键

时间:2009-05-11 19:34:21

标签: django google-app-engine views generics

我的代码看起来像这样:

def add_cart(request):
    return create_object(request, form_class=CartForm,
    post_save_redirect=reverse('test.views.show_cart',
                               kwargs=dict(object_id='%(key)s')))

理想情况下,我希望它看起来像这样:

def add_cart(request):
    newobject = create_object(request, form_class=CartForm,
    post_save_redirect=reverse('test.views.show_cart',
                               kwargs=dict(object_id='%(key)s'))) 
    request.session['cartid'] = newobject.key
    return newobject

如何从新创建的对象中检索密钥?

我正在使用google-app-engine-patch和所有最新版本。

2 个答案:

答案 0 :(得分:0)

在Django下你可以使用

newobject.id

newobject.pk

我建议使用 .pk

请记住, newobject.pk 并不总是与 newobject.id 相同。

答案 1 :(得分:0)

包含create_object的当前通用视图不提供钩子来对创建的对象进行额外处理。因此,如果你想这样做,你将不得不推出自己的创建视图,这真的不是很难。

当Django 1.2推出时,我们应该获得基于类的通用视图,这将使得更容易挂钩额外的功能。