2009-05-11 6 views
1

Mon code ressemble en tant que tel:clés Récupération de nouvel objet créé à partir create_object utilisant des vues génériques de Django

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'))) 

Idéalement, je voudrais à ressembler à ceci:

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 

Comment puis-je récupérer la clé de l'objet nouvellement créé? J'utilise google-app-engine-patch avec toutes les dernières versions.

Répondre

0

Sous Django vous pouvez utiliser

newobject.id 

ou

newobject.pk 

Je recommande d'utiliser .pk.

Rappelez-vous que newobject.pk est pas toujours la même que celle newobject.id.

0

Les vues génériques actuelles, create_object incluses, ne fournissent pas de hooks pour effectuer un traitement supplémentaire avec l'objet créé. Donc, si vous voulez faire cela, vous devrez rouler votre propre vue de création, ce qui n'est vraiment pas très difficile. Lorsque Django 1.2 est lancé, nous devrions avoir des vues génériques basées sur les classes, ce qui rendra plus facile l'ajout de fonctionnalités supplémentaires.

Questions connexes