From 5b3de8defe125c87cf0d18aeeddf9c91c4446713 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Tue, 25 Aug 2020 13:57:18 -0400 Subject: [PATCH] Use DjangoJSONEncoder for encoding custom field data --- .../circuits/migrations/0020_custom_field_data.py | 7 +++---- netbox/dcim/migrations/0115_custom_field_data.py | 13 ++++++------- netbox/extras/models/customfields.py | 3 ++- netbox/ipam/migrations/0038_custom_field_data.py | 15 +++++++-------- .../secrets/migrations/0010_custom_field_data.py | 5 ++--- .../tenancy/migrations/0010_custom_field_data.py | 5 ++--- .../migrations/0018_custom_field_data.py | 7 +++---- 7 files changed, 25 insertions(+), 30 deletions(-) diff --git a/netbox/circuits/migrations/0020_custom_field_data.py b/netbox/circuits/migrations/0020_custom_field_data.py index c72b937db..97da9962c 100644 --- a/netbox/circuits/migrations/0020_custom_field_data.py +++ b/netbox/circuits/migrations/0020_custom_field_data.py @@ -1,5 +1,4 @@ -# Generated by Django 3.1 on 2020-08-21 18:34 - +import django.core.serializers.json from django.db import migrations, models @@ -13,11 +12,11 @@ class Migration(migrations.Migration): migrations.AddField( model_name='circuit', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='provider', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), ] diff --git a/netbox/dcim/migrations/0115_custom_field_data.py b/netbox/dcim/migrations/0115_custom_field_data.py index 58c320902..e6353c916 100644 --- a/netbox/dcim/migrations/0115_custom_field_data.py +++ b/netbox/dcim/migrations/0115_custom_field_data.py @@ -1,5 +1,4 @@ -# Generated by Django 3.1 on 2020-08-21 18:34 - +import django.core.serializers.json from django.db import migrations, models @@ -13,26 +12,26 @@ class Migration(migrations.Migration): migrations.AddField( model_name='device', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='devicetype', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='powerfeed', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='rack', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='site', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), ] diff --git a/netbox/extras/models/customfields.py b/netbox/extras/models/customfields.py index 325853d6d..422438539 100644 --- a/netbox/extras/models/customfields.py +++ b/netbox/extras/models/customfields.py @@ -1,9 +1,9 @@ from collections import OrderedDict -from datetime import date from django import forms from django.contrib.contenttypes.models import ContentType from django.contrib.postgres.fields import ArrayField +from django.core.serializers.json import DjangoJSONEncoder from django.core.validators import ValidationError from django.db import models @@ -17,6 +17,7 @@ class CustomFieldModel(models.Model): Abstract class for any model which may have custom fields associated with it. """ custom_field_data = models.JSONField( + encoder=DjangoJSONEncoder, blank=True, default=dict ) diff --git a/netbox/ipam/migrations/0038_custom_field_data.py b/netbox/ipam/migrations/0038_custom_field_data.py index c9d66975c..86d51e9b8 100644 --- a/netbox/ipam/migrations/0038_custom_field_data.py +++ b/netbox/ipam/migrations/0038_custom_field_data.py @@ -1,5 +1,4 @@ -# Generated by Django 3.1 on 2020-08-21 18:34 - +import django.core.serializers.json from django.db import migrations, models @@ -13,31 +12,31 @@ class Migration(migrations.Migration): migrations.AddField( model_name='aggregate', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='ipaddress', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='prefix', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='service', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='vlan', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='vrf', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), ] diff --git a/netbox/secrets/migrations/0010_custom_field_data.py b/netbox/secrets/migrations/0010_custom_field_data.py index 33b5f06e1..6d48e7cab 100644 --- a/netbox/secrets/migrations/0010_custom_field_data.py +++ b/netbox/secrets/migrations/0010_custom_field_data.py @@ -1,5 +1,4 @@ -# Generated by Django 3.1 on 2020-08-21 18:34 - +import django.core.serializers.json from django.db import migrations, models @@ -13,6 +12,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='secret', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), ] diff --git a/netbox/tenancy/migrations/0010_custom_field_data.py b/netbox/tenancy/migrations/0010_custom_field_data.py index 4d05a8272..ec05be0ff 100644 --- a/netbox/tenancy/migrations/0010_custom_field_data.py +++ b/netbox/tenancy/migrations/0010_custom_field_data.py @@ -1,5 +1,4 @@ -# Generated by Django 3.1 on 2020-08-21 18:34 - +import django.core.serializers.json from django.db import migrations, models @@ -13,6 +12,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='tenant', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), ] diff --git a/netbox/virtualization/migrations/0018_custom_field_data.py b/netbox/virtualization/migrations/0018_custom_field_data.py index 5c129e2ab..9a120406a 100644 --- a/netbox/virtualization/migrations/0018_custom_field_data.py +++ b/netbox/virtualization/migrations/0018_custom_field_data.py @@ -1,5 +1,4 @@ -# Generated by Django 3.1 on 2020-08-21 18:34 - +import django.core.serializers.json from django.db import migrations, models @@ -13,11 +12,11 @@ class Migration(migrations.Migration): migrations.AddField( model_name='cluster', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), migrations.AddField( model_name='virtualmachine', name='custom_field_data', - field=models.JSONField(blank=True, default=dict), + field=models.JSONField(blank=True, default=dict, encoder=django.core.serializers.json.DjangoJSONEncoder), ), ]