Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2015 17:54:03

eboome
Зарегистрирован: 2013-06-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

QuerySet update_or_create помогите разобраться

Здраствуйте! Никак не могу понять как работает етот метод. Доку прочитал, но никак не удаеться ето сделать.
Суть задачи, нужно создать обьект, если его не существует, и редактировать если он существует:

obj, created=Products.objects.update_or_create(art=art, product_name=product_name, cost=cost, packing=1, profile=request.user, group=group, defaults=dict(product_name=product_name, cost=cost))
насколько я понял в defaults=dict(product_name=product_name, cost=cost) передаються те поля которые нужно редактировать. Но у меня по факту, создаются 2 одинакових обьекта
П.С: интересно только с использованием етого метода

Отредактировано eboome (Янв. 29, 2015 17:55:49)

Офлайн

#2 Янв. 29, 2015 18:26:32

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

QuerySet update_or_create помогите разобраться

The update_or_create method tries to fetch an object from database based on the given kwargs. If a match is found, it updates the fields passed in the defaults dictionary.

Офлайн

#3 Янв. 29, 2015 22:22:00

eboome
Зарегистрирован: 2013-06-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

QuerySet update_or_create помогите разобраться

inoks
The update_or_create method tries to fetch an object from database based on the given kwargs. If a match is found, it updates the fields passed in the defaults dictionary.
ну по факту у меня создаеться новая запись.

Офлайн

#4 Янв. 29, 2015 22:40:31

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

QuerySet update_or_create помогите разобраться

Это потому что ты всегда пытаешься достать запись с новыми параметрами
obj, created=Products.objects.update_or_create(art=art, product_name=product_name, cost=cost, packing=1, profile=request.user, group=group, defaults=dict(product_name=product_name, cost=cost))

obj, created=Products.objects.update_or_create(art=art, packing=1, profile=request.user, group=group, defaults=dict(product_name=product_name, cost=cost)
И будет тебя счастье

Отредактировано PanovSergey (Янв. 29, 2015 22:42:37)

Офлайн

#5 Янв. 30, 2015 11:25:19

eboome
Зарегистрирован: 2013-06-13
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

QuerySet update_or_create помогите разобраться

PanovSergey
Это потому что ты всегда пытаешься достать запись с новыми параметрамиobj, created=Products.objects.update_or_create(art=art, product_name=product_name, cost=cost, packing=1, profile=request.user, group=group, defaults=dict(product_name=product_name, cost=cost))


Спасибо, всё получилось!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version