Size: a a a

Django [ru] #STAY HOME

2021 February 27

N

Nire in Django [ru] #STAY HOME
Yegor Kowalew
Я же логично мыслю?
- выбираю с базы все объекты,
- правлю циклом в них один филд
- пишу в базу этот кверисет, а именно это одно измененное поле.
Почему я так не могу сделать???
    order_list = Order.objects.all()
   for order_item in order_list:
       order_item.product_name = '1233'
   order_list.save(update_fields=['product_name'])
Нет
источник

N

Nire in Django [ru] #STAY HOME
В форе делай сетаттр и сейв объекта
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Nire
Нет
что не так?
источник

N

Nire in Django [ru] #STAY HOME
Yegor Kowalew
что не так?
Написал выше
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Nire
В форе делай сетаттр и сейв объекта
неверное решение
источник

N

Nire in Django [ru] #STAY HOME
Yegor Kowalew
неверное решение
Тогда нафига ты цикл юзаешь
источник

N

Nire in Django [ru] #STAY HOME
Можешь и без него обновить, если что
источник

N

Nire in Django [ru] #STAY HOME
Просто апдейт у кверисета
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Nire
Тогда нафига ты цикл юзаешь
цикл юзаю, там дальше поле product_name будет правиться по разному, это будет отдельная функция. По факту я product_name буду чистить от всякой ерунды в нем содержащейся.
Но каждый объект отдельно перезаписывать я не хочу ибо хочу одним запросом сразу поменять все значения product_name
источник

N

Nire in Django [ru] #STAY HOME
Yegor Kowalew
цикл юзаю, там дальше поле product_name будет правиться по разному, это будет отдельная функция. По факту я product_name буду чистить от всякой ерунды в нем содержащейся.
Но каждый объект отдельно перезаписывать я не хочу ибо хочу одним запросом сразу поменять все значения product_name
Ну ты сделай по другому, вытаскивай нужный кверисет и апдейт его
источник

N

Nire in Django [ru] #STAY HOME
Зочем тебе этот фор
источник

NG

NIkita Gromov in Django [ru] #STAY HOME
вопрос по DRF у меня есть вот такой сериалайзер,

class ProfileSerializer(serializers.ModelSerializer):
   user = EditUserSerializer()

   class Meta:
       model = Profile
       fields = ('id', 'avatar', 'user')

   def update(self, instance, validated_data):
       user_data = validated_data.pop('user')

       instance = super(ProfileSerializer, self).update(instance, validated_data)

       user_serializer = EditUserSerializer()
       user_serializer.update(instance.user, user_data)

       return instance


могу ли я как то получить значение переменной user в update что бы не инициализировать класс дважды
источник

N

Nire in Django [ru] #STAY HOME
NIkita Gromov
вопрос по DRF у меня есть вот такой сериалайзер,

class ProfileSerializer(serializers.ModelSerializer):
   user = EditUserSerializer()

   class Meta:
       model = Profile
       fields = ('id', 'avatar', 'user')

   def update(self, instance, validated_data):
       user_data = validated_data.pop('user')

       instance = super(ProfileSerializer, self).update(instance, validated_data)

       user_serializer = EditUserSerializer()
       user_serializer.update(instance.user, user_data)

       return instance


могу ли я как то получить значение переменной user в update что бы не инициализировать класс дважды
В селф зайди в дебаггере и найди
источник

СА

Сергей Антонов... in Django [ru] #STAY HOME
Всем привет! Ребята подскажите что не так? https://pastebin.com/zQDHAphs
источник

DT

Dan Tyan in Django [ru] #STAY HOME
gettext установлен в систему?
источник

СА

Сергей Антонов... in Django [ru] #STAY HOME
Dan Tyan
gettext установлен в систему?
О привет...Вроде как да...
источник

СА

Сергей Антонов... in Django [ru] #STAY HOME
Dan Tyan
gettext установлен в систему?
Он через команду pip?
источник

СА

Сергей Антонов... in Django [ru] #STAY HOME
Устанавливается?
источник

СА

Сергей Антонов... in Django [ru] #STAY HOME
Dan Tyan
gettext установлен в систему?
from django.utils.translation import gettext as _ сделан такой импорт в конфиге
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Nire
Просто апдейт у кверисета
Вот так:
def correct_name():
   order_list = Order.objects.all()
   for order_item in order_list:
       order_item.product_name = '1233'
   Order.objects.bulk_update(order_list, fields=['product_name'])
   return True

я одним запросом заапдейчу, поле product_name, которое буду менять циклом
В итоге, один запрос чтоб выбрать все объекты
потом цикл чтоб поменять значения определенного поля
потом один запрос на запись всех изменений
источник