Объединение данных таблицы с внешним ключом и таблицы с первичным ключом с помощью django rest api
Я хочу отобразить всех покупателей с названиями книг.
output needed:
{
"city"
"buyer_name"
"book_name"
}
У меня есть код как показано ниже, но вывод отличается, я получаю book_id вместо book_name. Как его получить? models.py
class Book(models.Model):
book_id=models.BigAutoField(primary_key=True)
book_name=models.CharField(max_length=50)
def __str__(self):
return str(self.book_id)
class Buyer(models.Model):
buyer_id=models.BigAutoField(primar_key=True)
buyer_name=models.CharField(max_length=50)
book_id=models.ForeignKey(Book,on_delete=models.CASCADE)
city=models.CharField(max_length=50)
def __str__(self):
return str(self.buyer_id)
serializers.py
class BookSerializer(serializers.ModelSerializer):
class Meta:
model=Buyer
fields=['city','buyer_name','book_id']
views.py
@api_view(['POST']
class BuyerList(request)
buyerlist=Buyer.objects.all()
ser=BookSerializer(buyerlist,many=True)
return Response(ser.data)
Я думаю, что это должно быть что-то вроде:
class BookSerializer(serializers.ModelSerializer):
class Meta:
model=Buyer
fields=['city','buyer_name','book_id__book_name']
extra_kwargs = {'book_id__book_name': {'label': 'book_name'}}