[英]Django form element does not render in the html page
我有一個簡單的django應用程序來獲取一些輸入過程,並運行一個后台過程以在新頁面上顯示結果。
我有如下的查看代碼
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
def index(request):
if request.method == 'POST':
form = JsonTestForm(request.POST)
if form.is_valid():
return HttpResponseRedirect('/result/')
else:
form = JsonTestForm()
return render(request, 'ellora/index.html', {'form': form})
表單類如下
from django import forms
class JsonTestForm(forms.Form):
jsonTest = forms.Textarea(attrs={"class": "txtarea", "placeholder": "Enter your json script here"})
我的模板文件是
<div class="wrapper">
<h1>My app</h1>
<form class="form" method="post" action="/ellora/compute/">
{% csrf_token %}
{{ form }}
<input type="submit" class="submit" value="Generate Test">
</form>
</div>
當我運行django服務器時,html文件未顯示文本區域。 我看了一下頁面源,它在{{form}}位置只有一個空行。 我期待
<textarea class="txtarea" placeholder="Enter your json script here"></textarea>
為什么表單元素不顯示? 另外,如果我在模板本身中定義了,是否有一種無需使用django.forms.Form.Textarea即可獲取其內容的方法?
Forms.Textarea是一個表單小部件。
from django import forms
class JsonTestForm(forms.Form):
jsonTest = forms.CharField(widget=forms.Textarea(attrs={"class": "txtarea", "placeholder": "Enter your json script here"}))
應該呈現文本區域。
在表單類中,您正在使用小部件Textarea
。 您需要使用forms.CharField
並將小widget=forms.Textarea
指定為widget=forms.Textarea
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.