Pythonで生成された大きなデータセットをDjangoモデルに保存したいと思います。私の考えは、データを文字列にピックルし、それを私のモデルのFileFieldにアップロードすることでした。私のDjangoのモデルがある:私のPythonプログラムでpickleされたデータをdjango FileFieldにアップロードするにはどうすればいいですか?
#models.py
from django.db import models
class Data(models.Model):
label = models.CharField(max_length=30)
file = models.FileField(upload_to="data")
私は次の操作を実行したいと思います:
import random, pickle
data_entry = Data(label="somedata")
somedata = [random.random() for i in range(10000)]
# Next line does NOT work
#data_entry.file.save(filename, pickle.dumps(somedata))
どのように私はupload_to
パラメータで定義されたパスを保存file
でsomedata
を格納するための最後の行を変更する必要があります?
ちょうど私達がはっきりしています:あなたはどんな*ユーザーにもピクルスをアップロードさせることを話しているわけではありませんか?それは極端に危険なことでしょう、 –
いいえ、まったくありません。この考え方は、サーバー上にデータを生成してデータベースに追加することです。ユーザーは、データを生成するために使用されるモデルのパラメータ(上記の例で乱数の範囲など)を変更することのみが許可されます。この意味では、実際の "アップロード"ではありませんが、とにかく私はdjangoに(新しいディレクトリを作成し、重複を避けるなど)パスを管理したいと思います。 – btel