大家好,我有点困惑我的新手和缺乏知识之间,我在Django的一个小项目工作,我也试图发送数据从一个表单动作在html到另一个视图函数,但我不理解它好这是如何工作的,在这之上,我必须发送几个数据,而不仅仅是一个,它让我更困惑,我有以下HTML:
{% extends "base.html" %}
{% block content %}
<main class="container">
<div class="row">
<div class="col-md-10 offset-md-1 mt-5">
<form action="/interface/" method="POST" class="card card-body">
<h1>Interface</h1>
<h4>{{ error }}</h4>
<select name="dv">
<option selected disabled="True">Select Device</option>
{% for device in devicess %}
<option>{{ device.id }} - {{ device.name }}</option>
{% endfor %}
</select>
<br>
{% csrf_token %}
<br>
<button type="submit" class="btn btn-primary">Send</button>
</form>
<br>
{% for interface in interfaces %}
<section class="card card-body">
<h2>{{interface.Interface}}</h2>
{% if interface.Description == "" %}
<p class="text-secondary">none description</p>
{% else %}
<P class="text-secondary">{{interface.Description}}</P>
{% endif %}
<form action= "{% url 'send_description' %}"method="POST">
{% csrf_token %}
<input type="text" name="command" class="form-control" placeholder="Change description">
<br>
<button type="submit" class="btn btn-primary align-content-lg-center">Send change</button>
</form>
<br>
{% if interface.Status == "up" %}
<p class="text-secondary">Interface State: 🟢 Free</p>
{% else %}
<p class="text-secondary">Interface State: 🔴 Used</p>
{% endif %}
</section>
<br>
{% endfor %}
</div>
</div>
</main>
{% endblock %}
从美学Angular 更好地理解执行的第一次POST,如下所示:
到目前为止一切都很完美,如果我按下“发送更改”按钮,它会完美地重定向我,问题是我需要发送各种数据,如device.id,接口到我正在执行的函数中的action=“{% url 'send_description' %} .接口,以及输入的内容,这是在同一个表单。你能给予我一把或告诉我在哪里能找到最好的路吗?
问候!
1条答案
按热度按时间tcomlyy61#
让我先说这在JS和 AJAX 中会更好,但是,为了回答你的问题,数据是通过Django http request object传递的,在你的例子中,因为你有几个不同的表单,所以可以通过在每个表单中添加一个隐藏字段来传递数据:
并从视图中的request对象获取该值:
完整示例:
models.py
views.py
urls.py
list_device_interfaces.html