Django Rest-framework сериализация двух таблиц

У меня есть таблица "Книги" с некоторыми полями, и у меня есть таблица "Цены", каждый клиент имеет свою цену, я не знаю как получить цену для определенного клиента, как я должен настроить сериализатор? Пожалуйста, помогите мне,

class Book(models.Model):
    title = models.CharField('Заголовок', max_length=250)
    code = models.CharField('Код', primary_key=True, max_length=10)
    isbn = models.CharField('ISBN', max_length=18, null=True, blank=True)
    ean13 = models.CharField('EAN-13', max_length=13, null=True, blank=True)
    author = models.ForeignKey(Author, on_delete=models.SET_NULL, null=True, blank=True, verbose_name='Автор')

class PricesName(models.Model):
    name = models.CharField('Вид цены', max_length=20)

    def __str__(self):
        return self.name


 class Price(models.Model):
     book = models.ForeignKey(Book, on_delete=models.CASCADE)
     PricesName = models.ForeignKey(PricesName, on_delete=models.CASCADE)
     price = models.FloatField()

     def __str__(self):
        return self.book.title+" "+self.PricesName.name

 #########  Serializers.py ##########################
 class BookSerializer(serializers.ModelSerializer):
     author = serializers.StringRelatedField()
     class Meta:
       model = Book
       fields = #'__all__'

#### API.py ####
class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    permission_classes = [
        permissions.AllowAny
    ]
    serializer_class = BookSerializer
    filter_backends = (DjangoFilterBackend, filters.SearchFilter, filters.OrderingFilter)
    filter_fields = ('title', 'author')
    search_fields = ('title', 'author')
    pagination_class = StandardResultsSetPagination

проблема решена

class BookSerializer(serializers.ModelSerializer):
    prices = serializers.SerializerMethodField()

    def get_prices(self, serializer):
        #PriceName__id -  price number allowed to current Customer
        book_price = Price.objects.filter(book=serializer.code, PricesName__id=2).first()
        try:
            price = getattr(book_price, "price")
        except:
            price = 0
        return price

    class Meta:
        model = Book
        fields = "__all__"
Вернуться на верх