Я ищу, как написать один сериализатор, например: используя GET -> я даю 'uuid' -> ответ сервера - это только 'name', 'content', 'rating' используя POST -> я даю 'name','content', 'rating' -> serer ответ только что создан 'uuid' и 'time'.
Это моя модель обучения:
class Post(models.Model):
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=40)
time = models.DateTimeField()
content = models.TextField(max_length=250)
rating = models.IntegerField(default=1)
Я учился создавать DjangoREST API от youtube, и учитель сказал, что лучше сделать один сериализатор для разных действий, например, когда метод «POST» вы получаете «uuid» и «время», но когда метод «GET» вы получаете «имя», «время»',' контент 'и' рейтинг '.Но на этом уроке он хочет показать его более простым способом, поэтому он сделал два сериализатора, в зависимости от метода:
class PostGetSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = [
'name',
'time',
'content',
'rating'
]
class PostCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = [
'uuid',
'time',
]
Я знаю, что это всего лишь небольшой пример, но я надеюсь, что вы его получите.
Как я могу манипулировать данными запроса и ответа ОДНОГО сериализатора, зависит от метода?
РЕДАКТИРОВАНО, потому что я думаю, что это не ясно:
Я хочу что-тонапример:
Когда я создаю объект с помощью API, начальные данные JSON - это 'name', 'content' и 'rating' ... после этого запроса на создание объект был создан с помощью pk -> uuid и autoвремя и данные JSON.Я хочу получить ответные поля 'uuid' (pk) и 'time' (автоматическое время).
Но когда я использую GET с заголовком 'uuid' (чтобы получить конкретный объект) в ответ, я хочуиметь «имя», «контент», «рейтинг» и «время» без «uuid».
Все в одном сериализаторе.Это вообще возможно?Какой тип написания сериализаторов обычно используется программистами?Для каждого метода один сериализатор?или один большой конкретный сериализатор для одной модели.