Size: a a a

Django [ru] #STAY HOME

2019 October 27

DT

Dan Tyan in Django [ru] #STAY HOME
Yegor Kowalew
Товарищи что делаю не так???
sn_no_amended=get_sn_obj(record['sn_no_amended']).all()
sn_no_amended это M2M поле. get_sn_obj() функция, которая возвращает список объектов
Получаю:
TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use sn_no_amended.set() instead.
Нельзя делать
Obj.m2mfield = something
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
Нельзя делать
Obj.m2mfield = something
а как надо?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
ща код лучше покажу
источник

DT

Dan Tyan in Django [ru] #STAY HOME
obj.m2mfield.add(other)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
или
источник

DT

Dan Tyan in Django [ru] #STAY HOME
obj.m2mfield.set([other])
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
obj.m2mfield.set([other])
а во время создания объекта?
Типа obj_order, _ = Order.objects.get_or_create(
а вот тут в поле всовываем м2м
)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Yegor Kowalew
а во время создания объекта?
Типа obj_order, _ = Order.objects.get_or_create(
а вот тут в поле всовываем м2м
)
нет
источник

DT

Dan Tyan in Django [ru] #STAY HOME
так низя
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
ок. Спасибо! Где номер карточки?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
кстати
источник

DT

Dan Tyan in Django [ru] #STAY HOME
да я никак бота не могу заставить работать
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
кстати
Уже давно бы в шапку закрепил ссылку на статическую страничку где все расписано и забыл бы
источник

U

UUID8 in Django [ru] #STAY HOME
Привет. Есть три модели:
https://pastebin.com/FqnBjtEC .

Мне через DRF ModelSerializer нужно получить поля из модели ObjectDataNormalized и ObjectDataAdditional. У одного объекта ObjectDataNormalized может быть несколько ObjectDataAdditional. Связка происходит в  модели NormalizedAdditional.

Так выглядит сериализатор:
class ObjectDetailSerializer(serializers.ModelSerializer):
   # normal_object = NormalAdditionalSerializer(many=True, read_only=True)

   class Meta:
       model = ObjectDataNormalized
       fields = ('id', 'normal_object')
       # depth = 1

Вот это с помощью этого я могу получить доступ к модели ObjectDataNormalized и pk normal_object которые к нему привязаны.
queryset:
        queryset = ObjectDataNormalized.objects.prefetch_related('normal_object',
                                                                'normal_object__additional_object').get(id=object_id)

но мне нужно еще получить доступ к ObjectDataAdditional которые привязаны к данному ObjectDataNormalized.

Пробовал это normal_object__additional_object(и разные варианты этого) в fields вставлять, но ничего не работает. Еще пробовал для каждой модели свой сериализатор делать, но тогда и ошибок нет, но и данные никакие не выводит.

Как запилить сериализатор с такими связями?
источник

U

UUID8 in Django [ru] #STAY HOME
UUID8
Привет. Есть три модели:
https://pastebin.com/FqnBjtEC .

Мне через DRF ModelSerializer нужно получить поля из модели ObjectDataNormalized и ObjectDataAdditional. У одного объекта ObjectDataNormalized может быть несколько ObjectDataAdditional. Связка происходит в  модели NormalizedAdditional.

Так выглядит сериализатор:
class ObjectDetailSerializer(serializers.ModelSerializer):
   # normal_object = NormalAdditionalSerializer(many=True, read_only=True)

   class Meta:
       model = ObjectDataNormalized
       fields = ('id', 'normal_object')
       # depth = 1

Вот это с помощью этого я могу получить доступ к модели ObjectDataNormalized и pk normal_object которые к нему привязаны.
queryset:
        queryset = ObjectDataNormalized.objects.prefetch_related('normal_object',
                                                                'normal_object__additional_object').get(id=object_id)

но мне нужно еще получить доступ к ObjectDataAdditional которые привязаны к данному ObjectDataNormalized.

Пробовал это normal_object__additional_object(и разные варианты этого) в fields вставлять, но ничего не работает. Еще пробовал для каждой модели свой сериализатор делать, но тогда и ошибок нет, но и данные никакие не выводит.

Как запилить сериализатор с такими связями?
сейчас так пробую:
class ObjectDetailSerializer(serializers.ModelSerializer):
   # normal_objectt = NormalAdditionalSerializer( read_only=True)
   # additional_object = AdditionalSerializer(read_only=True)

   additional_info = SerializerMethodField()

   class Meta:
       model = ObjectDataNormalized
       fields = '__all__'
       # depth = 10

   def get_additional_info(self, obj):
       additional_info = ObjectDataAdditional.objects.filter(additional_object__normalized_object=obj)
       serializer = AdditionalSerializer(additional_info, many=True)
       return serializer.data


но получаю AttributeError: 'tuple' object has no attribute '_meta'
источник

DT

Dan Tyan in Django [ru] #STAY HOME
есть тут кто пишет/писал телеграм бота на вебхуках и бот хостился на firstvds ? не было проблем?
источник

I

Ivan in Django [ru] #STAY HOME
как может не быть проблем если у ферствдс рф айпи? конечно они будут
источник

I

Ivan in Django [ru] #STAY HOME
и на поллинге тоже - бот не достучится до телеграма
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Ivan
и на поллинге тоже - бот не достучится до телеграма
по теории работает
но переписывать не охото
источник

I

Ivan in Django [ru] #STAY HOME
как это по теории? я точню помню что в 2017 когда у меня был вдс на 1вдс — ничего не работало
источник