【问题标题】:How to show the data entered in textarea using django?如何使用 django 显示在 textarea 中输入的数据?
【发布时间】:2026-01-09 17:25:02
【问题描述】:

我想创建一个辩论网站。我无法在屏幕上显示在我的文本区域中输入的数据。我创建了一个名为 NoteModel 的模型,并在 forms.py 文件中创建了一个 NoteForm。我正在使用views.py 来保存在textarea 中输入的数据。

应用名称:辩论

html文件名:content.html

这是我的 views.py 文件:

from django.http import HttpResponseRedirect
from .models import *
from .forms import *

def index(request):
     return render(request,'debate/content.html')

def NoteView(request):
    if request.method == 'POST':
        m = NoteForm(data=request.POST)
        if m.is_valid():
            method = m.save()
            return HttpResponseRedirect('method/')
        else:
            return render(request,'debate/content.html', {'NoteForm': method})

这是models.py文件:

from django.db import models


class NoteModel(models.Model):
title = models.CharField(max_length=200)
complete = models.BooleanField(default=False)
def __str__(self):
       return self.title

这是 content.html 文件:

<button onclick="myFunction()">for</button>
<button onclick="myFunction()">against</button>
<form method="post" action="NoteView/">
     {%csrf_token%}
     {{form.title}}
     <script>
          function myFunction() {
          var x = document.createElement("TEXTAREA");
          var t = document.createTextNode("enter your for point");
          var y = document.createElement("INPUT");
          y.setAttribute("type", "submit");
          document.body.appendChild(y);
          x.appendChild(t);
          document.body.appendChild(x);
          }
       </script>
     </form>

这是 forms.py 文件

from django import forms
from django.forms import ModelForm
from .models import *
 class NoteForm(forms.ModelForm):
       class Meta:
             model = NoteModel
             fields='__all__'

【问题讨论】:

  • 您也可以粘贴您的表单吗,因为您也在模板中调用它?

标签: javascript django django-models django-views django-templates


【解决方案1】:

例如,如果您放置一个 h1 标记,您可以通过执行以下操作,使用 onchange 方法查看在 textarea 中输入的数据:

<body>
  ....
  <h1 id="text"></h1>
  <form>
   ....
    <script>
        function myFunction(){
            var x = document.createElement("TEXTAREA");
            var t = document.createTextNode("enter your for point");
            var y = document.createElement("INPUT");
            y.setAttribute("type", "submit");
            document.body.appendChild(y);
            x.setAttribute("id", "textarea");
            x.setAttribute("onchange", "showFunction()");
            x.appendChild(t);
            document.body.appendChild(x)
       }
    </script>
  </form>
  <script>
        function showFunction() {
            let textarea = document.getElementById("textarea").value;
            document.getElementById("text").innerHTML = textarea;
        }
  </script>

【讨论】:

    最近更新 更多