Ich habe folgende MySQL-Tabellen:
-Stellen
-Model
-StylesErstellen einer API mit Django-Rest-Framework beitreten Tabellen
models.py (automatisch generiert)
class Makes(models.Model):
id = models.IntegerField(primary_key=True)
name = models.CharField(max_length=13)
nicename = models.CharField(db_column='niceName', max_length=13)
class Meta:
managed = False
db_table = 'Makes'
class Models(models.Model):
id = models.CharField(primary_key=True, max_length=36)
name = models.CharField(max_length=23)
nicename = models.CharField(db_column='niceName', max_length=23)
make = models.ForeignKey(Makes, models.DO_NOTHING)
class Meta:
managed = False
db_table = 'Models'
serializers.py
class MakeSerializer(serializers.ModelSerializer):
class Meta:
model = Makes
fields = ('name',)
class ModelSerializer(serializers.ModelSerializer):
make = MakeSerializer(many=True, read_only=True)
class Meta:
model = Models
fields = ('make','id', 'name', 'nicename')
views.py
Mit anderen Worten, Styles ist die übergeordnete Tabelle, die eine ID für Make und Model enthält, die die beiden verbindet.
Wie gehe ich über eine Beziehung mit DRF macht mir die erwartete Ausgabe zu geben:
"makes": [{
"id": 1,
"name": "Acura",
"models": [{
"id": "Acura_ILX",
"name": "ILX",
"styles": [{
"id": "1"
"name": "Sport"
}]
}, {
"id": "Acura_ILX_Hybrid",
"name": "ILX Hybrid",
"styles": [{
"id": "1"
"name": "Sport"
}]
}, {
"id": "Acura_MDX",
"name": "MDX",
"styles": [{
"id": "1"
"name": "Sport"
}]
}]
Es ist nur ein Beispiel. Wenn Sie Daten gefüllt haben, erstellen Sie einfach diese Serialisierer. Laden Sie ein Objekt, an dem Sie interessiert sind, und übergeben Sie es als Instanz an den Serializer – sebb
ist es gut? hast du das erwartet? – sebb
Ich habe gerade meinen Beitrag bearbeitet, so dass du mein Setup sehen kannst. – Moshe