次のように定義されたモデルオブジェクトのリストをシリアル化しようとしています:
class AnalysisInput(models.Model):
input_user = models.CharField(max_length=45)
input_title = models.CharField(max_length=45)
input_date = models.DateTimeField()
input_link = models.CharField(max_length=100)
json.dumps() のカスタム シリアライザー (エンコーダー) を作成しました。
class AnalysisInputEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, AnalysisInput):
return { "input_id" : obj.id,
"input_user" : obj.input_user,
"input_title" : obj.input_title,
"input_date" : obj.input_date.isoformat(),
"input_link" : obj.input_link }
return json.JSONEncoder.default(self, obj)
オブジェクトを 1 つだけシリアル化すると、それが可能になります。オブジェクトのリストをシリアル化しようとすると、取得します
[ objects..] is not JSON serializable
検索しましたが、作業する場所が見つかりませんでした..モデルオブジェクトのリストにもカスタムシリアライザーを書くことを考えていました。