私は動作するように複数ページの登録フォームを作成しようとしています。私は組み込みのユーザーモデルを使用しており、それを1対1の関係で拡張しています。Django "辞書更新シーケンス要素#0は長さが1; 2が必要です"
これはmodels.pyファイルです:
class Dadilja(models.Model):
korisnik = models.OneToOneField(User)
ime = models.CharField(max_length=256)
prezime = models.CharField(max_length=256)
datum_rođenja = models.DateField(null=True, blank=True)
mjesto = models.CharField(max_length=256)
mjesto_obavljanja = models.CharField(max_length=256)
broj_telefona = models.CharField(max_length=20)
slika_profila = models.ImageField(upload_to="slika_profila", blank=True)
iskustvo = models.CharField(max_length=256)
dostupna = models.CharField(max_length=256)
about = models.CharField(max_length=256)
broj_djece = models.PositiveIntegerField()
dodatno = models.CharField(max_length=256)
cijena = models.PositiveIntegerField()
forms.py:
class Forma1(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta():
model = User
fields = ("username", "email", "password")
class Forma2(forms.ModelForm):
datum_rođenja = forms.DateField(widget=forms.SelectDateWidget(years=reversed(range(1930,2000))))
class Meta():
model = Dadilja
fields = ("ime", "prezime", "datum_rođenja", "mjesto", "mjesto_obavljanja", "broj_telefona")
class Forma3(forms.ModelForm):
class Meta():
model = Dadilja
fields = ("slika_profila", "iskustvo", "dostupna", "about", "broj_djece", "dodatno", "cijena")
そして最も重要な、views.pyファイル:
def dadilja_registracija_3(request):
dadilja2 = Forma3(data=request.POST)
if request.method == "POST" and dadilja2.is_valid():
print(dadilja2.cleaned_data)
korisnik = request.session['form_data_page_1']
dadilja1 = request.session['form_data_page_2']
user = User(username=korisnik['username'], email=korisnik['email'], password=korisnik['password'])
user.set_password(user.password)
user.save()
privremeno = {} for dadilja in dadilja2.cleaned_data: privremeno.update(dadilja)
dadilja1 = Dadilja(korisnik=user, ime=dadilja1['ime'],
prezime=dadilja1['prezime'],
datum_rođenja=dadilja1['datum_rođenja'],
mjesto=dadilja1['mjesto'],
mjesto_obavljanja=dadilja1['mjesto_obavljanja'],
slika_profila=privremeno['slika_profila'],
iskustvo=privremeno['iskustvo'],
about=privremeno['about'],
broj_djece=privremeno['broj_djece'],
dodatno=privremeno['dodatno'],
cijena=privremeno['cijena'])
if 'slika_profila' in request.FILES:
dadilja.slika_profila = request.FILES['slika_profila']
dadilja1.save()
else:
dadilja2 = Forma3()
return render(request, 'accounts/dadilja3.html', {'dadilja2' : dadilja2})
私は続けている値のエラー:辞書の更新シーケンス要素#0には長さ1があります。 2が必要です。問題は、私がhiglited辞書 "privremeno"の "dadilja_registracija_3"と呼ばれる視野にあります。
これは私を狂っている、私はもう何をすべきか分からない。あなたが気づいているよう事前にTNXは
このエラー(ビュー/フォームが呼び出される)につながる手順は何ですか?スタックトレースをポストし、スタックトレースにコード内のどの行が表示されているかを指摘します。 – Risadinha
元の投稿を編集しました。問題は、私がhiglited辞書 "privremeno"の "dadilja_registracija_3"と呼ばれる視野にあります。 –