feat(#49): return FK details in department and municipality serializers

- DepartmentSerializer adds country_detail (nested country object)
- MunicipalitySerializer adds department_detail and country_detail
- Writable FK id fields kept for create/update
- Move geography brief serializers to serializers/geography.py
This commit is contained in:
2026-08-16 03:23:56 -05:00
parent 29d154e140
commit 699983931e
4 changed files with 58 additions and 23 deletions

View File

@@ -9,13 +9,38 @@ class CountrySerializer(serializers.ModelSerializer):
fields = ["id", "name", "code"]
class DepartmentSerializer(serializers.ModelSerializer):
class CountryBriefSerializer(serializers.ModelSerializer):
class Meta:
model = Country
fields = ["id", "name", "code"]
class DepartmentBriefSerializer(serializers.ModelSerializer):
class Meta:
model = Department
fields = ["id", "name", "country"]
fields = ["id", "name"]
class MunicipalityBriefSerializer(serializers.ModelSerializer):
class Meta:
model = Municipality
fields = ["id", "name"]
class DepartmentSerializer(serializers.ModelSerializer):
country_detail = CountryBriefSerializer(source="country", read_only=True)
class Meta:
model = Department
fields = ["id", "name", "country", "country_detail"]
class MunicipalitySerializer(serializers.ModelSerializer):
department_detail = DepartmentBriefSerializer(
source="department", read_only=True
)
country_detail = CountryBriefSerializer(source="country", read_only=True)
class Meta:
model = Municipality
fields = ["id", "name", "department", "country"]
fields = ["id", "name", "department", "department_detail", "country", "country_detail"]

View File

@@ -1,25 +1,11 @@
from rest_framework import serializers
from ..models.geography import Country, Department, Municipality
from ..models.provenance import Organization, Supplier
class CountryBriefSerializer(serializers.ModelSerializer):
class Meta:
model = Country
fields = ["id", "name", "code"]
class DepartmentBriefSerializer(serializers.ModelSerializer):
class Meta:
model = Department
fields = ["id", "name"]
class MunicipalityBriefSerializer(serializers.ModelSerializer):
class Meta:
model = Municipality
fields = ["id", "name"]
from .geography import (
CountryBriefSerializer,
DepartmentBriefSerializer,
MunicipalityBriefSerializer,
)
class OrganizationSerializer(serializers.ModelSerializer):