Как мне это сделать?

|
LUBASKIN_CODE 2022-07-02 19:05:30
brodskij 2022-07-02 19:04:25
не твой кейс?
https://stackoverflow.com/questions/58679761/drf-serializer-empty-ordereddict-on-update

pydjango-738841.jpg

brodskij 2022-07-02 19:06:46
LUBASKIN_CODE 2022-07-02 19:05:30

https://github.com/beda-software/drf-writable-nested

GitHub — beda-software/drf-writable-nested: Writable nested model serializer for Django REST FrameworkGitHub
Writable nested model serializer for Django REST Framework — GitHub — beda-software/drf-writable-nested: Writable nested model serializer for Django REST Framework
brodskij 2022-07-02 19:09:24
LUBASKIN_CODE 2022-07-02 19:05:30

https://stackoverflow.com/a/67739077/12884304

Data validation error in Django SerializerStack Overflow
I am trying to add multiple ManytoMany relationship in a model but when I am trying to add the data it shows OrderedDict() in the validated data in serializer
Models.py
class Client(models.Model):
LUBASKIN_CODE 2022-07-02 19:13:31
pydjango-738844.jpg

LUBASKIN_CODE 2022-07-02 19:15:02
почему так?
dantyan 2022-07-02 19:16:47
а что не так?
LUBASKIN_CODE 2022-07-02 19:17:02
dantyan 2022-07-02 19:16:47
а что не так?

почему validated_data пустой?

dantyan 2022-07-02 19:19:58
LUBASKIN_CODE 2022-07-02 19:17:02
почему validated_data пустой?

для того чтобы ответить на этот вопрос надо понять что в сериализаторе и что в data

LUBASKIN_CODE 2022-07-02 19:20:18
dantyan 2022-07-02 19:19:58
для того чтобы ответить на этот вопрос надо понять что в сериализаторе и что в data

всм? сериализатор выше кидал

dantyan 2022-07-02 19:20:50
где? 🙂
dantyan 2022-07-02 19:21:13
я не постоянно тут могу что-то и упустить
LUBASKIN_CODE 2022-07-02 19:21:48
class TagsSerializer(serializers.ModelSerializer):
# сериализатор тэгов
title = serializers.CharField(max_length=250,read_only=True)
class Meta:
model = Tag
fields = [‘id’,’title’]
dantyan 2022-07-02 19:22:19
у тебя два Read_only поля
dantyan 2022-07-02 19:22:26
ни одного для записи
dantyan 2022-07-02 19:22:36
что ты ещё от него хочешь?
LUBASKIN_CODE 2022-07-02 19:23:27
почему два рид онли?
LUBASKIN_CODE 2022-07-02 19:23:37
id разве ридонли?
dantyan 2022-07-02 19:24:05
да
dantyan 2022-07-02 19:24:29
ты не можешь поменять id объекту
dantyan 2022-07-02 19:24:43
это было бы…. неудобно
LUBASKIN_CODE 2022-07-02 19:24:47
но он же в validated_data должен возвращать валидированные данные которые я ему передал
dantyan 2022-07-02 19:25:10
да которые потом пойдут в базу
LUBASKIN_CODE 2022-07-02 19:25:21
dantyan 2022-07-02 19:25:10
да которые потом пойдут в базу

да, но он мне ничего не возвращает

dantyan 2022-07-02 19:25:25
те которые доступны для записи
dantyan 2022-07-02 19:25:36
у тебя таких нет
dantyan 2022-07-02 19:25:52
и он тебе возвращает пустой дикт
LUBASKIN_CODE 2022-07-02 19:26:10
аааааа, и правда
dantyan 2022-07-02 19:26:11
нет ключей нет значений
LUBASKIN_CODE 2022-07-02 19:26:29
спасибо, я постараюсь сейчас изложить то что я хотел сделать
dantyan 2022-07-02 19:26:31
такой вот невеселый каламбур
LUBASKIN_CODE 2022-07-02 19:26:42
если убрать с тайтл ридонли тогда тайтл вернет
LUBASKIN_CODE 2022-07-02 19:30:03
Мне нужно получать POST запрос, там должны быть тэги — список диктов
в этих диктах должны быть айдишники тэгов
По сути, TagSerializer должен принимать тэги, десереализовать их айди и проверять есть ли такие тэги
и потом мне нужно эти айдишники тегов привязать по m2m к записи Todo
LUBASKIN_CODE 2022-07-02 19:30:13
LUBASKIN_CODE 2022-07-02 19:30:03
Мне нужно получать POST запрос, там должны быть тэги — список диктов
в этих диктах должны быть айдишники тэгов
По сути, TagSerializer должен принимать тэги, десереализовать их айди и проверять есть ли такие тэги
и потом мне нужно эти айдишники тегов привязать по m2m к записи Todo

как мне это сделать?

dantyan 2022-07-02 19:30:51
мне кажется…
LUBASKIN_CODE 2022-07-02 19:31:06
сейчас, мне TagsSerializer возвращает пустой дикт а не айдишники
dantyan 2022-07-02 19:31:15
тебе сериализатор тегов не нужен в данном случае
LUBASKIN_CODE 2022-07-02 19:31:27
dantyan 2022-07-02 19:31:15
тебе сериализатор тегов не нужен в данном случае

как раз таки нужен

LUBASKIN_CODE 2022-07-02 19:31:38
по причине того что я хочу выводить таким образом тэги:

«tags»: [
{
«id»: 1,
«title»: «Животные»
}
]

dantyan 2022-07-02 19:31:58
тебе надо в сериализаторе туду
LUBASKIN_CODE 2022-07-02 19:32:07
я просто нуб в дрф полный
dantyan 2022-07-02 19:32:58
получить список диктов
получить список айди
получить qs
добавить в туду
LUBASKIN_CODE 2022-07-02 19:33:23
LUBASKIN_CODE 2022-07-02 19:31:38
по причине того что я хочу выводить таким образом тэги:

«tags»: [
{
«id»: 1,
«title»: «Животные»
}
]

но как мне их тогда так вывести?

dantyan 2022-07-02 19:33:26
LUBASKIN_CODE 2022-07-02 19:31:38
по причине того что я хочу выводить таким образом тэги:

«tags»: [
{
«id»: 1,
«title»: «Животные»
}
]

а такое отдавать на чтение

LUBASKIN_CODE 2022-07-02 19:33:52
dantyan 2022-07-02 19:33:26
а такое отдавать на чтение

ВОТ, меня интересует как на чтение отдавать тайтлы, а на запись принимать айдишники

dantyan 2022-07-02 19:34:34
написать своё поле или свой сериализатор
dantyan 2022-07-02 19:35:26
в котором будут твоя логика для to_represenatation и для to_internal_value
dantyan 2022-07-02 19:35:48
как один из вариантов решения
LUBASKIN_CODE 2022-07-02 19:36:07
а какие еще есть?
dantyan 2022-07-02 19:36:46
dantyan 2022-07-02 19:32:58
получить список диктов
получить список айди
получить qs
добавить в туду

описать это во въюхе или сериализатопе туду

dantyan 2022-07-02 19:37:31
в сериализаторе ты можешь получить данные в self.initial_data
|