を高く評価している私はこれをテストしていませんが、それはあなたのアイデアを与える必要があります。最も内側のオブジェクトから始め、select_relatedを使用して階層を走査し、次に内側のオブジェクトをループし、必要に応じて階層のキーを追加します。
土地のない国/地域/地域がある場合は、JSONには含まれませんので、注意してください。そうでない場合は、それぞれのモデルを個別にクエリする必要があります。
data = {}
for e in Estate.objects.select_related("sub_region__region__country"):
sub, region, country = e.sub_region, e.sub_region.region, e.sub_region.region.country
if country.name not in data:
data[country.name] = {}
if region.name not in data[country.name]:
data[country.name][region.name] = {}
if sub.name not in data[country.name][region.name]:
data[country.name][region.name][sub.name] = []
data[country.name][region.name][sub.name].append(e.name)
json_data = json.dumps(data)
ありがとう、ありがとう –
データに含まれていないsub.name [country.name] [region.name] sub.nameがデータ[country.name] [region.name]にない場合は[sub.name] –