У меня есть две модели: одна BookModel и другая AuthorModel. Я в основном хочу создать поле внешнего ключа для BookModel для ссылки на AuthorModel. И я смог установить это успешно.
Но когда я получаю объект / запись из BookModel, я получаю идентификатор автора вместо всего объекта автора. Как мне это сделать?
Вот что у меня в коде. В models.py:
class AuthorModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField('Name', max_length=255)
pen_name = models.CharField('Pen Name', max_length=255)
class BookModel(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField('Book Name', max_length=255)
author = models.ForeignKey(Author, on_delete=models.CASCADE, blank=True, default='', related_name='book_authorid')
В serializers.py:
class AuthorSerializer(serializers.ModelSerializer):
class Meta:
model = Author
fields = ('id', 'name', 'pen_name')
class BookSerializer(serializers.ModelSerializer):
author = AuthorSerializer()
class Meta:
model = Book
fields = ('id', 'name', 'author')
Вид:
class BookViewSet(mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
viewsets.GenericViewSet):
queryset = BookModel.objects.all()
serializer_class = BookSerializer
permission_classes = (AllowAny,)