未直接質問への答えが、私は、このコードは私が正しい答えにうまく保存dicts作成を支援見つけます。このデータをjsonにエクスポートする場合は、型変換が必要です。
私はこれが役に立てば幸い:
#mod is a django database model instance
def toDict(mod):
import datetime
from decimal import Decimal
import re
#Go through the object, load in the objects we want
obj = {}
for key in mod.__dict__:
if re.search('^_', key):
continue
#Copy my data
if isinstance(mod.__dict__[key], datetime.datetime):
obj[key] = int(calendar.timegm(ts.utctimetuple(mod.__dict__[key])))
elif isinstance(mod.__dict__[key], Decimal):
obj[key] = float(mod.__dict__[key])
else:
obj[key] = mod.__dict__[key]
return obj
def toCsv(mod, fields, delim=','):
import datetime
from decimal import Decimal
#Dump the items
raw = []
for key in fields:
if key not in mod.__dict__:
continue
#Copy my data
if isinstance(mod.__dict__[key], datetime.datetime):
raw.append(str(calendar.timegm(ts.utctimetuple(mod.__dict__[key]))))
elif isinstance(mod.__dict__[key], Decimal):
raw.append(str(float(mod.__dict__[key])))
else:
raw.append(str(mod.__dict__[key]))
return delim.join(raw)
おかげで、それは私が何を探していたまさにです。また、ちょうどあなたの投稿に基づいてサイドノートとして。 Model.objects.create(** data_dict)を使用するときにsaveメソッドを呼び出す必要はありません。あなたはすでにこれを知っているかもしれませんが、ただ頭が上がっています。 –
私は以前に 'objects.create'メソッドを使っていませんでしたので、何か新しいことを教えてくれました。 – Alasdair
また、objects.createは有効なpkを埋め込んだ新しいモデルへのポインタを返します。これはすぐに関連モデルを構築するために使用できます。 –