Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我想使用Django模板语言和JavaScript语法_Javascript_Python_Django_Django Models_Django Forms - Fatal编程技术网

我想使用Django模板语言和JavaScript语法

我想使用Django模板语言和JavaScript语法,javascript,python,django,django-models,django-forms,Javascript,Python,Django,Django Models,Django Forms,所以,我想从我的表单(addDatabase.html)中获取用户输入,并显示输入内容的输出,让他们下载带有yaml格式输出(output.html)的txt文件 当我使用request.POST[“fieldname”]使用Django的models.py时,它起作用了。 我所做的是使用JS获取innerHTML的标记,并将其显示出来 output.html JS代码 var name = document.getElementById("name"); for

所以,我想从我的表单(addDatabase.html)中获取用户输入,并显示输入内容的输出,让他们下载带有yaml格式输出(output.html)的txt文件

当我使用request.POST[“fieldname”]使用Django的models.py时,它起作用了。 我所做的是使用JS获取innerHTML的标记,并将其显示出来

output.html JS代码

        var name = document.getElementById("name");
        formContents += name.innerHTML + "\n";


        var type = document.getElementById("type");
        formContents += "  " + type.innerHTML + "\n";
但我现在的问题是,因为我决定使用modelform而不是model.py来使用form.py。我不知道如何像以前一样从模型中检索数据

output.html

<li id="type">type: {{ form.type}}</li>
<li id="vlanid">vlan_id: {{ form.vlan_id}}</li>
<li id="rdp">rdp: {{ form.rdp}}</li>
<li id="subnet">subnet:</li>
****使用forms.py中的modelform查看.py****

这是我以前的addDatabase函数

def addDatabase(request):
    # if this is a POST request we need to process the form data
    return render(request, 'niro/addDatabase.html')
def addDatabase(request):
    if request.method == 'POST':
        form = YamlForm(request.POST)
        if form.is_valid():
            form.save()

        # return HttpResponseRedirect('niro/output.html', {'form': form})
        return HttpResponseRedirect('.', {'form': form})
    else:
        form = YamlForm()

    return render(request, 'niro/addDatabase.html', {'form': form})
这是我当前的AddDatabase函数

def addDatabase(request):
    # if this is a POST request we need to process the form data
    return render(request, 'niro/addDatabase.html')
def addDatabase(request):
    if request.method == 'POST':
        form = YamlForm(request.POST)
        if form.is_valid():
            form.save()

        # return HttpResponseRedirect('niro/output.html', {'form': form})
        return HttpResponseRedirect('.', {'form': form})
    else:
        form = YamlForm()

    return render(request, 'niro/addDatabase.html', {'form': form})
addDatabase.html 因此,单击按钮时,在此处发布重定向到output.html函数

  <div class="container">
 <form action="{% url "output" %}" method="post"> 
{% csrf_token %}

<div class="row name">
<h3>NETWORK</h3>
</div>
<div class="row">
  <div class="col-25">
    <label for="">NAME:</label>
  </div>
  <div class="col-75">
      <span class="text-danger" small>{{ form.name.errors }}</span>
        {{ form.name }}

  </div>

</div>
<div class="row">
  <div class="col-25">
    <label for="type">TYPE:</label>
  </div>
  <div class="col-75">
    <span class="text-danger" small>{{ form.type.errors }}</span>
      {{ form.type }}



.
.
.
.
    <div class="row button container">
    <div class="row button">
        <button type="submit" value="submit">SUBMIT</button>
        <button type="submit" value="submit">ADD MORE</button>

    </div>
</div>

所以我想修改这两个函数上的views.py,这样我就可以显示表单中的用户输入,并使用Django modelform使用现有JS代码启用下载功能。请帮帮我

那么,到底发生了什么?您有两种方法,其中一种不起作用?什么不起作用;渲染?发帖?@wholevinski你好!就像我在上面添加的一样,我只是使用models.py而不是forms.py,但我决定使用forms.py,因为它有更多的内置函数。因此,我以前的addDatabase函数只是有一个表单,并将输出重定向到output.html和output.html(带models.py),使用form_info.objects.all()和name=request.POST[“name”]等从表单检索每个输入。。。但是我想使用ModelForm并修改我的两个视图。。我可以显示userinput的输出并下载相同的输出,但现在我没有收到任何userinput,只是在提交表单时为空。因此,在发布之后,
addDatabase.html
不显示用户以前发布的内容?它仍然显示我的html表单,但问题是当单击提交按钮并显示输出时,它应该重定向到output.html页面。。它不会显示任何内容,当我下载文件时,它只给我html代码而不是用户输入。所以以前,我的addDatabase函数中没有任何内容,因为它只显示我的表单并获得用户输入,但没有发布所有内容,它搞砸了:(你不能在
HttpResponseRedirect
中发送上下文信息。只需在
output.html
上调用render,然后传入上下文,而不是尝试重定向。