[英]form doesn't appear - UnboundLocalError at / DJANGO FORM
我的表格現在沒有出現在我的網站上,而且它的錯誤。 這是我的錯誤信息:
UnboundLocalError at / local variable 'form' referenced before assignment 請求方法:GET 請求 URL:http://localhost:8000/ Django 版本:3.0.14 異常類型:UnboundLocalError 異常值:分配前引用局部變量 'form' 異常位置: F:\KULIAH\SEMESTER8\SKRIPSI\MusicLockApp\MusicLockApp\views.py 在主頁第 20 行 Python 可執行文件:C:\Users\Capoo\python.exe Python 版本:3.10.2 Python 路徑:['F:\KULIAH\ SEMESTER8\SKRIPSI\MusicLockApp', 'C:\Users\Capoo\python310.zip', 'C:\Users\Capoo\DLLs', 'C:\Users\Capoo\lib', 'C:\Users\Capoo' , 'C:\Users\Capoo\lib\site-packages'] 服務器時間:Thu, 19 May 2022 06:33:52 +0000
這是我的views.py:
def homepage(request):
if request.method == "POST":
form = Audio_store(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['record'])
return render(request, "homepage.html", {'form': form})
else:
return render(request, "homepage.html", {'form': form})
return render(request, "homepage.html")
html:
<form method="POST" enctype="multipart/form-data">
<button type="submit" class="dsnupload">
<i class="large material-icons" style="font-size: 50pt; margin-top: 10px;">audiotrack</i>
<p style="font-weight: bold; color: white;">Insert file audio (mp3)</p>
{% csrf_token %}
{{form}}
</button>
</form>
表格.py:
from django import forms
class Audio_store(forms.Form):
record=forms.FileField(widget=forms.FileInput(attrs={'style': 'width: 300px;', 'class': 'form-control'}))
urls.py:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^decode/$', views.decode),
path("", views.homepage, name="upload")
]
if settings.DEBUG: #add this
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我希望我的表格立即出現,請幫助我
嘗試這個
def homepage(request):
if request.method == "POST":
form = Audio_store(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['record'])
return render(request, "homepage.html", {'form': form})
else:
return render(request, "homepage.html", {'form': Audio_store()})
return render(request, "homepage.html")
示例https://docs.djangoproject.com/en/4.0/topics/forms/#the-view
就像這樣,表格會立即出現。
def homepage(request):
form_class = Audio_store
form = form_class(request.POST or None)
if request.method == "POST":
form = Audio_store(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['record'])
return render(request, "homepage.html", {'form': form})
return render(request, "homepage.html", {'form': form})
當您單擊 URL 時,將執行一個 GET 請求。 根據您的代碼,當請求進入其他部分時,請求假設顯示一個空表單,但您尚未定義表單類對象並將此對象作為上下文傳遞給 return 語句,這就是您收到此錯誤的原因。
試試這個代碼:
def homepage(request):
form = Audio_store()
if request.method == "POST":
form = Audio_store(request.POST, request.FILES)
if form.is_valid():
handle_uploaded_file(request.FILES['record'])
form.save()
return render(request, "homepage.html", {'form': form})
return render(request, "homepage.html", {'form': form})
希望它對你有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.