dunmaksim
@dunmaksim
Технический писатель

Как в Django REST Framework правильно описывать сериализаторы?

Имею две модели, 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 обязательно для заполнения.
  • Вопрос задан
  • 3375 просмотров
Решения вопроса 1
dunmaksim
@dunmaksim Автор вопроса
Технический писатель
На форуме python.su пользователь GreyZmeem ответил на мой вопрос. Всё, оказывается, чуть сложнее, чем описано в официальной документации: python.su/forum/topic/26086
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы