from django.forms.models import model_to_dict class CustomJSONEncoder(json.JSONEncoder): def default(self, obj): try: if isinstance(obj, models.Model): return model_to_dict(obj) if isinstance(obj, models.QuerySet): return [model_to_dict(x) if isinstance(x, models.Model) else x for x in obj] return super().default(obj) except TypeError: print("Not serializable. Defaulting to string. Value:", obj) return str(obj) converted = json.dumps(x, cls=CustomJSONEncoder)# create instance of model m = MyModel(**data_dict) # don't forget to save to database! m.save()