forループを使用してリストから多くの値を1つのオブジェクトに格納しようとしています。すべてがFloatField型です。私の関数は、私に1つの結果を持つ多くのオブジェクトを与えます。 1つの行にすべての値を持つオブジェクトが1つだけ必要です。リストから単一オブジェクトへの反復値を保存する
views.py
namesOfModelFields = [f.name for f in ModelName._meta.get_fields()]
resultsOfNames = ['name1', 'name2', 'name3']
resultsOfValue - ['1','2','3']
form = f_Form()
newF = form.save(commit=False)
for i in namesOfModelFields:
if any(str(i) in s for s in resultsOfNames):
j = resultsOfValue[resultsOfNames.index(i)]
form = f_Form({str(i) : float(j)})
newF = form.save(commit=False)
newF.save()
if form.is_valid():
form.save_m2m()
forms.py
class f_Form(ModelForm):
class Meta:
model = ModelName
fields = '__all__'
models.py
class ModelName (models.Model):
name1 = models.FloatField(null=True, blank=True)
name2 = models.FloatField(null=True, blank=True)
name3 = models.FloatField(null=True, blank=True)
私は私がすることで、このいずれかを実行することはできません3.よりもはるかに多くのfiledsを持っていますone
"1つの行にすべての値を持つ1つのオブジェクト"は何を意味しますか?あなたはどんな結果を期待していますか? –
https://i.imgsafe.org/512aacd7e2.png これは私のdbの結果です。すべての値を1行にまとめたい – karwielo
なぜ、各繰り返しで新しいフォームをインスタンス化するのですか?実際、なぜあなたはこれをやっているのですか? –