Получение ключа из нового объекта, созданного из create_object, с использованием общих представлений Django - PullRequest
1 голос
/ 11 мая 2009

Мой код выглядит так:

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 голосов
/ 12 мая 2009

Текущие общие представления, включая create_object, не предоставляют хуков для дополнительной обработки созданного объекта. Поэтому, если вы хотите сделать это, вам придется развернуть свой собственный вид создания, что на самом деле не очень сложно.

Когда Django 1.2 развернется, мы должны получить базовые представления на основе классов, которые значительно облегчат подключение дополнительных функций.

0 голосов
/ 12 мая 2009

В Django вы можете использовать

newobject.id

или

newobject.pk

Я рекомендую использовать .pk .

Помните, что newobject.pk не всегда совпадает с newobject.id .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...