Mit Django Rest-Farmework zur Implementierung der API gibt es ein Problem in der verschachtelten Beziehung hier. Der Inhalt mit dem Fremdschlüssel zugeordnet ist, kann nicht angezeigt werden, der spezifische Code wird wie folgt:django rest-farmework verschachtelte Beziehungen
models.py
class Category(models.Model):
name = models.CharField(max_length=30)
amount = models.IntegerField()
class Source(models.Model):
name = models.CharField(max_length=50)
rss_link = models.URLField()
amount = models.IntegerField()
# ForeignKey
category = models.ForeignKey(Category)
views.py
class CategoryListView(APIView):
def get(self, request):
category = Category.objects.all()
serializers = CategorySerializers(category, many=True)
return Response(serializers.data)
serializers.py
class SourceSerializers(serializers.ModelSerializer):
class Meta:
model = Source
fields = ("id","name","amount")
class CategorySerializers(serializers.ModelSerializer):
source = SourceSerializers(many=True, read_only=True)
class Meta:
model = Category
fields = ("id","name","amount","source")
Programm läuft Ergebnisse:
[
{
"id": 1,
"name": "默认分类",
"amount": 0
},
{
"id": 2,
"name": "科技频道",
"amount": 0
}
]
Warum kann 'Quelle' im Ergebnis nicht angezeigt werden?
Ich hoffe, dass das Ergebnis so
ist[
{
"id": 1,
"name": "默认分类",
"amount": "0",
"source": [
{
"id": 34,
"name": "博客园",
"amount": "231"
},
{
"id": 35,
"name": "CSDN",
"amount": "643"
}
]
},
{
"id": 2,
"name": "科技频道",
"amount": "0",
"source": []
}
]
Sie haben für die ForeignKey einen verwandten Namen nicht definieren, so dass die umgekehrte Beziehung standardmäßig so etwas wie 'source_set'. –
Vielen Dank, das Problem ist gelöst. – jason