Size: a a a

Django [ru] #STAY HOME

2020 June 12

M

MRL in Django [ru] #STAY HOME
есть готовые решения yandex money для django 3? https://github.com/yandex-money/yandex-money-kit-django данный проект не мигрируется пишет cannot import name 'python_2_unicode_compatible' from 'django.utils.encoding' . Гугл говорит python_2_unicode_compatible не поддерживается в Django 3
источник

AD

Alex Dem in Django [ru] #STAY HOME
Anton Fircak
ну то я увидел, но как поля описывать которые будут в списке?
вот я об этом пытался тебе сказать))
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Alex Dem
вот я об этом пытался тебе сказать))
я сейчас сделал вот так:
class DeviceMeasurementsSerializer(serializers.ListSerializer):
   device_type = serializers.ChoiceField(choices=DEVICE_TYPES)
   measurement_result = serializers.FloatField()
   measurement_type = serializers.ChoiceField(choices=MEASUREMENT_TYPES)
   created_date = serializers.DateTimeField()

class DeviceListSerializer(serializers.Serializer):
   class Meta:
       list_serializer_class = DeviceMeasurementsSerializer
источник

AD

Alex Dem in Django [ru] #STAY HOME
Начать надо с того, что описать модельные сериализаторы для твоих моделей
А потом думать как крепить их к лист-сериалайзерам

IMO
источник

AD

Alex Dem in Django [ru] #STAY HOME
Anton Fircak
я сейчас сделал вот так:
class DeviceMeasurementsSerializer(serializers.ListSerializer):
   device_type = serializers.ChoiceField(choices=DEVICE_TYPES)
   measurement_result = serializers.FloatField()
   measurement_type = serializers.ChoiceField(choices=MEASUREMENT_TYPES)
   created_date = serializers.DateTimeField()

class DeviceListSerializer(serializers.Serializer):
   class Meta:
       list_serializer_class = DeviceMeasurementsSerializer
я кстати не знаю, serializers.ListSerializer валидирует поля?
Мне казалось, он просто чекает что пришло - list/не list
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Alex Dem
я кстати не знаю, serializers.ListSerializer валидирует поля?
Мне казалось, он просто чекает что пришло - list/не list
та да это я до конца не шарю
источник

AD

Alex Dem in Django [ru] #STAY HOME
я просто в доке не нахожу валидации полей для ListSerializer
там только описаны override методов create/update
источник

AD

Alex Dem in Django [ru] #STAY HOME
Anton Fircak
та да это я до конца не шарю
возможно я и команда других разрабов ошибалась когда писала мой текущий проект
но когда нужен list и валидация полей, писали сериализаторы для single объекта, а данные передавали с флагом many=True
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Alex Dem
возможно я и команда других разрабов ошибалась когда писала мой текущий проект
но когда нужен list и валидация полей, писали сериализаторы для single объекта, а данные передавали с флагом many=True
типо есть модел сериализатор, он проверяет поля (или же просто сериализатор) и потом заюзать этот класс с флагом many=true
источник

AD

Alex Dem in Django [ru] #STAY HOME
Anton Fircak
типо есть модел сериализатор, он проверяет поля (или же просто сериализатор) и потом заюзать этот класс с флагом many=true
ага
источник

AD

Alex Dem in Django [ru] #STAY HOME
Anton Fircak
типо есть модел сериализатор, он проверяет поля (или же просто сериализатор) и потом заюзать этот класс с флагом many=true
"заюзать этот класс с флагом many=true"
да, из-под другого parent-сериализатора
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Alex Dem
ага
тогда проблема class DeviceListSerializer(serializers.Serializer):
   aa = DeviceMeasurementsSerializer(many=True)
aa is required field
источник

AD

Alex Dem in Django [ru] #STAY HOME
я не подумал об этом :)))
источник

AD

Alex Dem in Django [ru] #STAY HOME
Anton Fircak
тогда проблема class DeviceListSerializer(serializers.Serializer):
   aa = DeviceMeasurementsSerializer(many=True)
aa is required field
class ItemSerializer(serializers.Serializer):
   id = serializers.IntegerField()
   name = serializers.CharField()

class ItemsSerializer(serializers.Serializer):
   items = serializers.ListField(child=ItemSerializer())
источник

AD

Alex Dem in Django [ru] #STAY HOME
все-таки всплыл чайлд :)
источник

AD

Alex Dem in Django [ru] #STAY HOME
правда, в таком примере все равно надо будет передавать ключ
источник

AD

Alex Dem in Django [ru] #STAY HOME
{items: [.. instances data ...]}
источник

AD

Alex Dem in Django [ru] #STAY HOME
вот как от этого избавиться я так и не придумал :(
источник

AD

Alex Dem in Django [ru] #STAY HOME
поэтому последнее решение по своей сути особо ничем не отличается от предыдущего
источник

AF

Anton Fircak in Django [ru] #STAY HOME
Гайз есть у кого пример использования Listserializer?
источник