0

for 루프를 사용하여 목록에서 많은 값을 하나의 객체에 저장하려고합니다. 모두 FloatField 유형입니다. 내 함수는 하나의 결과로 많은 객체를 제공합니다. 한 행에 모든 값을 가진 객체가 하나만 필요합니다.목록에서 반복되는 값을 단일 객체로 저장

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이 하나

+0

"한 행의 모든 ​​값을 가진 한 개체"는 무엇을 의미합니까? 어떤 결과를 얻고 싶습니까? –

+0

https://i.imgsafe.org/512aacd7e2.png 이것은 내 DB의 결과입니다. 하나의 행에 모든 값을 갖고 싶습니다. – karwielo

+0

그렇다면 왜 각 반복마다 새로운 양식을 인스턴스화합니까? 사실 왜이 일을하고 있니? –

답변

0

아직 이해가 안됩니다. 네가하고있는 경첩. 그러나 단일 모델 인스턴스를 만들고 그 작업을 수행하고 폼이나 루프를 신경 쓸 필요는 없습니다.

values = dict(zip(resultsOfNames, resultsOfValues)) 
new_item = ModelName.objects.create(**values)) 
+0

을 할 수 없다. – karwielo

+0

그것은 고맙다. – karwielo

관련 문제