Django表单元素不会在HTML页面中呈现

2024-10-01 00:15:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的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})

表单类如下

^{pr2}$

我的模板文件是

      <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文件不显示textarea。我查看页面源代码,它在{{form}}位置有一个空行。我在等着呢

<textarea class="txtarea" placeholder="Enter your json script here"></textarea>

为什么表单元素没有显示?另外,如果我在模板本身中定义了,有没有一种方法可以在不使用的情况下获取它的内容django.forms.Form.text区域?在


Tags: djangofromimportformindexreturnifrequest
2条回答

在窗体文本区域是一个窗体小部件。在

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。在

相关问题 更多 >