gpt4 book ai didi

javascript - 从 django 上的 js 获取

转载 作者:行者123 更新时间:2023-12-03 06:53:48 25 4
gpt4 key购买 nike

有 html 这 3 个 droplist\2 按钮,js 发送带有 3 个变量 mar、yer、kpp 的 GET

  function validate() {
var mar = document.forms.form_id.m.value;
var yer = document.forms.form_id.y.value;
var kpp = document.forms.form_id.k.value;

return mar, yer, kpp;
}
</script>


<body style="background: transparent; border: none;">
<form action="/search/" method="get" id="form_id" type="submit" onSubmit="return validate();">
<table>
<tr>
<td style="text-align:center">
<br>
<select id="m">
<option value="">Марка</option>
{% for article in articles %}
<option value="{{ article }}">{{ article }}</option>
{% endfor %}
</select>
</td>
<td style="text-align:center">
<br>
<select id="y">
<option value="">Год выпуска</option>
<option value="2016">2016</option>

</select>
</td>
<td style="text-align:center">
<br>
<select id="k">
<option value="">Коробка передач</option>
<option value="mt">Механика</option>

</select>
</td>
</tr>
<tr>
<td colspan="3" style="text-align:center">
<input type="submit" value="Отправить">
<input type="reset" value="Очистить">
</td>
</tr>
</table>
</form>
</body>

和定义

def search(request):
if 'mar' in request.GET and request.GET['mar']:
q = request.GET['mar']
list = AutoParsingMan.objects.filter(marka=q)
return render_to_response('Mysitez/seach.html',
{'list': list, 'querty': q})
else:
return HttpResponse('Please submit a search term.')

为什么不使用这 1 个变量?(mar) 以及如何为 3 个变量创建 def?(mar, yer, kpp)

模型.py

class AutoParsingMan(models.Model):
date_ins = models.DateTimeField()
date_change = models.DateTimeField()
change = models.CharField(max_length=15)
date = models.DateTimeField()
date_task = models.DateField()
marka = models.CharField(max_length=50)
year = models.IntegerField()
kpp = models.CharField(max_length=50)

class Meta:
managed = False
db_table = 'auto_parsing_man'

def __str__(self):
return self.marka, self.year, self.kpp

错误 - MultiValueDictKeyError at/search/"'mar'"

 def search(request):
if 'mar' in request.GET and request.GET['mar'] and request.GET['year'] and request.GET['kpp']:
q = request.GET['mar']
y = request.GET['year']
k = request.GET['kpp']
list = AutoParsingMan.objects.filter(marka=q, year=y, kpp=k)
return render_to_response('Mysitez/seach.html',
{'list': list, 'querty': q})
else:
return HttpResponse('Please submit a search term.')

最佳答案

首先,塞尔丘克是对的,你应该更好地提出你的问题。问题应该尽可能客观,你的问题很模糊。不过,我可以看出你的问题出在哪里。

您混淆了 JavaScript 和 HTML 表单。它们是两个独立的规范,旨在相互独立。在构建 JavaScript 驱动的表单之前,您应该首先使用纯 HTML 构建表单,一旦工作正常,您就可以在其上添加 JavaScript。

对于您手头的问题,您使用了 mar 名称作为 JavaScript 变量名称,该名称永远不会由 HTML 表单发送,因为 HTML 表单不知道 JavaScript 变量。相反,您应该在 select 标记上使用 name= 参数,如下所示:

<br>
<select id="m" name="mar">
<option value="">Марка</option>
{% for article in articles %}
<option value="{{ article }}">{{ article }}</option>
{% endfor %}
</select>
</td>
<td style="text-align:center">
<br>
<select id="y" name="yer">
<option value="">Год выпуска</option>
<option value="2016">2016</option>

</select>
</td>
<td style="text-align:center">
<br>
<select id="k" name="kpp">
<option value="">Коробка передач</option>
<option value="mt">Механика</option>

</select>
</td>

HTML 表单将发送 mar 变量,其中包含从下拉列表中选择的任何文章的选项。

<小时/>

注意

这种代码风格可能适合学习 django 和/或一般的 Web 开发,但在现实世界中,您应该将表单的构建委托(delegate)给 django,在一个通常称为 forms.py 的文件中。 Django 有一个表单引擎,它比在模板中硬编码表单具有更好的兼容性。

关于javascript - 从 django 上的 js 获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37381169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com