Django初心者です。
本を見ながら抜粋してサンプルを作成していますがエラーが出て解決できず困っています。
やりたいことはシンプルにModelFormを使用し,
画面の入力した更新するというサンプルを作りたいのですが躓いています。
views.py
def Update(request): obj = SettingData1.objects.get(Field1=1) if (request.method == 'POST'): SettingData1 = UpdateForm(request.POST,instance=obj) SettingData1.save() return redirect(to='update') params = { 'form':UploadForm(instance=obj), } return render(request,'Update.html',params)
models.py
class SettingData1(models.Model): Field1 = models.CharField(max_length=200) Field2 = models.CharField(max_length=200) Field3 = models.CharField(max_length=200) Field4 = models.CharField(max_length=200)
forms.py
class UpdateForm(forms.ModelForm): class Meta: model = SettingData1 fields=['Field1','Field2','Field3','Field4']
ブラウザでのエラーは
UnboundLocalError at /app/update
local variable 'SettingData1' referenced before assignment
と表示され、エラー箇所はviews.pyの
obj = SettingData1.objects.get(Field1=1)
と表示されます。
POSTのif文をコメントアウトするとなぜか画面が表示される(DBからのデータ取得もできています)ため
この部分が原因のように思えますが具体的な対応方法がわかりません。
エラーメッセージでいろいろ調べましたが具体的な対応方法がわかりませんでした。
あまりに初歩的な質問だと思いますがご教授お願いいたします。
環境:
Python:Python 3.7.3
Django:3.0.5
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/01 09:34