Я работаю над учебником, который включает в себя создание приложения статей.У меня есть модель Article, которую я сериализую, и мне любопытно, почему мне нужно явно устанавливать определенные поля при использовании ModelSerializer.
Вот моя модель:
from django.db import models
from core.models import TimestampedModel
class Article(TimestampedModel):
slug = models.SlugField(db_index=True, max_length=255, unique=True)
title = models.CharField(db_index=True, max_length=255)
description = models.TextField()
body = models.TextField()
author = models.ForeignKey('profiles.Profile', on_delete=models.CASCADE, related_name='articles')
def __str__(self):
return self.title
Довольно стандартные вещи,Следующий шаг - сериализация данных модели в моем файле serializers.py:
class ArticleSerializer(serializers.ModelSerializer):
author = ProfileSerializer(read_only=True) # Three fields from the Profile app
description = serializers.CharField(required=False)
slug = serializers.SlugField(required=False)
class Meta:
model = Article
fields = (
'author',
'body',
'createdAt',
'description',
'slug',
'title',
'updatedAt',
)
В частности, зачем мне явно указывать поля author
, description
и slug
, если яиспользуя serializers.ModelSerializer
и вытягивая эти поля из моей модели в моем <strong>class Meta:</strong>
ниже?
Спасибо!