diff --git a/netbox/dns/api/serializers.py b/netbox/dns/api/serializers.py index f62285bd6..d99e6366b 100644 --- a/netbox/dns/api/serializers.py +++ b/netbox/dns/api/serializers.py @@ -9,10 +9,18 @@ from dns.models import Zone, Record class ZoneSerializer(serializers.ModelSerializer): + bind_export = serializers.SerializerMethodField() + class Meta: model=Zone fields = ['id', 'name', 'ttl', 'soa_name', 'soa_contact', 'soa_serial', 'soa_refresh', 'soa_retry', 'soa_expire', 'soa_minimum'] + def get_bind_export(self, obj): + records = Record.objects.filter(zone=obj) + return { + 'export': obj.to_bind(records), + } + class ZoneNestedSerializer(ZoneSerializer): class Meta(ZoneSerializer.Meta): @@ -27,11 +35,17 @@ class RecordSerializer(serializers.ModelSerializer): zone = ZoneNestedSerializer() address = IPAddressNestedSerializer() + bind_export = serializers.SerializerMethodField() class Meta: model=Record fields = ['id', 'name', 'record_type', 'priority', 'zone', 'address', 'value'] + def get_bind_export(self, obj): + return { + 'export': obj.to_bind(), + } + class RecordNestedSerializer(RecordSerializer): class Meta(RecordSerializer.Meta):