Size: a a a

Django [ru] #STAY HOME

2021 April 09

Б

Богдан in Django [ru] #STAY HOME
как в SerializerModel добавить поле, которое не относиться к моделе?

мне нужно получить content_id из запроса, но если я добавляю его в ModelSerializer - получаю TypeError: 'contect_id' is an invalid keyword argument for this function


class ContractSerializer(serializers.ModelSerializer):
   content_id = serializers.CharField(read_only=True)
   date_signing = serializers.DateTimeField()
   email = serializers.EmailField(max_length=255)

   class Meta:
       model = Contract
       fields = ('date_signing', 'email’)
источник

О

Озодчик in Django [ru] #STAY HOME
создайте не модел сериалайзер а другой )
источник

DT

Dan Tyan in Django [ru] #STAY HOME
.filter().filter() - выполнит AND запрос
топик стартеру нужен OR
источник

DT

Dan Tyan in Django [ru] #STAY HOME
сделай его write_only
источник

О

Озодчик in Django [ru] #STAY HOME
да думаю он должен реализовать фильтерсет класс и добавить в неё имя  таблицы и поля котрые он хочет взять
источник

О

Озодчик in Django [ru] #STAY HOME
тоже вариант
источник

Б

Богдан in Django [ru] #STAY HOME
та же ошибка
источник

DT

Dan Tyan in Django [ru] #STAY HOME
и добавь в fileds
источник

О

Озодчик in Django [ru] #STAY HOME
тогда отдельный класс который не наследует от модел сериалайзер
источник

Б

Богдан in Django [ru] #STAY HOME
спасибо
источник

Б

Богдан in Django [ru] #STAY HOME
наверное этот вариант лучше с архитектурной точки зрения
источник

О

Озодчик in Django [ru] #STAY HOME
да просто создайте отдельный сериалайзер и наследуйте от serializers.Serializer
источник

О

Озодчик in Django [ru] #STAY HOME
таким образом можете не париться на счёт БД)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
зачем ? =)
источник

DT

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

О

Озодчик in Django [ru] #STAY HOME
да ) но при этом он будет отдельным )
источник

АБ

Артем Бутаков... in Django [ru] #STAY HOME
ребят, что-то никак не могу понять, есть ли возможность фильтровать queryset без дополнительных запросов в бд? допустим, есть код
posts = Post.publications.all()
tags = Tag.objects.all()
for tag in tags:
   print(posts.filter(tags=tag))

как сделать так, чтоб при каждой итерации цикла не было нового запроса в базу? хочу просто получить сразу все данные, а потом уже работать с ними. prefetch_related('tags') только увеличило количество запросов
источник

DT

Dan Tyan in Django [ru] #STAY HOME
posts = Post.publications.filter(tags__in=tags)
источник

N

Nonverbis in Django [ru] #STAY HOME
А он в цикле колотит по БД разве? Вы проверили это? Он один раз ударит и все. С остальными данными он будет работать из кэша. Но это надо проверить. Так что если хочется вот именно в цикле, я подозреваю, что тоже норм.
источник

АБ

Артем Бутаков... in Django [ru] #STAY HOME
мне нужен отдельный queryset для каждого тега, а не для всех сразу
источник