J'ai 3 modèles book, language, book_language
. lorsque je tente d'obtenir la liste des livres que je ne peux pas obtenir des langues associées avec django_rest_framework
Django Rest Framework - Obtenir des données avec Reverse Lookup ne fonctionne pas
models.py
class Book(models.Model):
title = models.CharField(max_length=200)
year = models.IntegerField()
class Language(models.Model):
language_name = models.CharField(max_length=100)
class Book_language(models.Model):
book = models.ForeignKey(Book)
language = models.ForeignKey(Language)
serializers.py
class BookLanguageSerializer(serializers.ModelSerializer):
class Meta:
model = Book_language
fields = ('id', 'language',)
class BookSerializer(serializers.ModelSerializer):
languages = BookLanguageSerializer(source='language_set')
class Meta:
model = Book
fields = ('id', 'title', 'languages')
souhaité ouput:
[{
id: 1,
title: 'some book 1',
languages: [
{
id: 1,
language: 'english'
},
{
id: 2,
language: 'chinese'
}
]
},
{
id: 2,
title: 'some book 2',
languages: [
{
id: 1,
language: 'english'
},
{
id: 2,
language: 'chinese'
}
]
}]
Au lieu de la sortie ci-dessus, je reçois seulement la liste des livres sans tableau de langues comme ci-dessous.
[{
id: 1,
title: 'some book 1',
},
{
id: 2,
title: 'some book 2',
}]
aussi Guide Où puis-je trouver de meilleurs exemples, j'ai essayé de lire le DRF doc mais ses pas débutants amical.
Je suis arrivé cette erreur objet 'livre n'a pas d'attribut « language_set'.' quand je l'utilise beaucoup = True – Srinivas
Il y a une base défaut dans vos modèles. Puis-je savoir, pourquoi n'avez-vous pas mis la langue comme clé étrangère dans le livre? –
Je suppose, un livre peut avoir plusieurs langues? droite? alors, dans ce cas, vous devez utiliser plusieurs champs. –