1
最初は単純に見えましたが、今は混乱しました。私はデータ構造を書いて、今それを得るのに苦労しています。これまでのところ、私は持っている:django restフレームワーク複数の外部キーをシリアライズ
class Area(models.Model):
name = models.CharField(max_length=128)
...
class Category(models.Model):
name = models.CharField(max_length=128)
....
class Venue(models.Model):
name = models.CharField(max_length=128)
category = models.ForeignKey(Category, related_name='venues')
area = models.ForeignKey(Area, related_name='venues')
そして、私は必要ではその中に会場でカテゴリを取得PK Area
に基づきます。それはdjangoの残りのフレームワークを使用して行うことは可能ですか?
class VenueSerializer(serializers.ModelSerializer):
.....
class CategorySerializer(serializers.ModelSerializer):
venues = VenueSerializer(read_only=True, many=True)
class Meta:
model = Category
fields = ('pk', 'name', 'venues',)
class AreaSerializer(serializers.ModelSerializer):
categories = CategorySerializer(read_only=True, many=True)
class Meta:
model = Area
fields = ('pk', 'name', 'categories',)
しかし、もちろんのArea
がCategory
に関連直接ないので、これは動作しません。理想的には私はこのようなものが必要
{
"pk": 1,
"name": "London",
"categories": [
{
"pk": 1,
"name": "Bars",
"venues": [
{
"pk": 1,
"name": "Cool bar"
},
{
"pk": 2,
"name": "Cooler bar"
},
{
"pk": 3,
"name": "Coldest bar"
},
]
}
]
}
:結果は次のようになります。だから私の質問はデータ構造を変更せずにこれを行うことは可能ですか?