В моем models.py
есть две модели:
class Genre(models.Model):
genre_id = models.CharField(max_length=10)
name = models.CharField(max_length=40)
information = models.CharField(max_length=120)
def __str__(self):
return self.name
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
genre = models.ForeignKey(Genre, on_delete=models.CASCADE)
def __str__(self):
return self.title
Они сериализованы:
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ('title', 'author', 'genre')
class GenreSerializer(serializers.ModelSerializer):
class Meta:
model = Genre
fields = ('name', 'information')
и ViewSets
созданы для каждой:
class BookViewSet(viewsets.ModelViewSet):
queryset = Book.objects.all()
serializer_class = BookSerializer
class GenreViewSet(viewsets.ModelViewSet):
queryset = Genre.objects.all()
serializer_class = GenreSerializer
Я хотел бы сделать следующее:
- Отправка запроса
POST
на конечную точку books/
.Отправленные данные должны содержать идентификатор существующего жанра, иначе они не будут сохранены в базе данных (это уже сделано по умолчанию). - Получение
information
от модели Genre
в качестве ответа.
Позвольте мне привести короткий пример:
Я отправляю этот JSON:
{
"title": "Hercules Poirot",
"author": "Agatha Christie",
"genre": 1
}
Вместо повторного запроса сверху я получаю что-то вроде этого:
{ "genre": "crime story" }
Как это сделать?