Имею две модели,
ExtUser и
News соответственно, при этом у
News есть поле
author, являющееся внешним ключом, указывающим на
ExtUser.
Описал два сериализатора, один для GET, второй для POST-запросов.
GET:class NewsGETSerializer(serializers.ModelSerializer):
class Meta:
model = NewsModel
fields = ['id', 'title', 'announce', 'full_text', 'pub_date', 'reviews', 'author']
POST:class NewsPOSTSerializer(serializers.ModelSerializer):
class Meta:
model = NewsModel
def get_validation_exclusions(self):
return super(NewsPOSTSerializer, self).get_validation_exclusions() + ['author']
def pre_save(self):
self.author = self.request.user
Сериализатор для POST должен при сохранении модели в поле author подставлять id пользователя, который размещает новость, а для GET должен в поле author помещать значение, которое вычисляется как Фамилия + И. + О.
Как правильно сделать такие сериализаторы? В моём случае первый выдаёт id пользователя, а второй пишет, что поле
author обязательно для заполнения.