当我尝试在模板中使用选择表单控件向视图中输入一些选定的值时,返回webView.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
Uri parsedUri = Uri.parse(view.getUrl());
WebView newWebView = new WebView(view.getContext());
view.addView(newWebView);
WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
transport.setWebView(newWebView);
resultMsg.sendToTarget();
PackageManager packageManager = getPackageManager();
Intent browseIntent = new Intent(Intent.ACTION_VIEW).setData(parsedUri);
if (browseIntent.resolveActivity(packageManager) != null) {
startActivity(browseIntent);
return true;
}
return true;
}
});
,但是当我尝试使用不带选择字段的相同输入时,不会出现错误。
带有选择的代码并返回MultiValueDictKeyError
:
MultiValueDictKeyError
不返回错误的代码,我只是更改了这一部分:
{% extends 'base.html' %}
{% block main %}
Edit
<form method="POST">
{% csrf_token %}
<label for="descricao">Data Inicial:</label>
<input id="descricao" type="text" name="descricao" value="{{ descricao }}" class="form_datetime" /><br>
<script type="text/javascript">
$(".form_datetime").datetimepicker({ format: '03/01/19 08:00' });
</script>
<label for="descricao2">Data Final:</label>
<input id="descricao2" type="text" name="descricao2" value="{{ descricao2 }}" class="form_datetime" /><br>
<script type="text/javascript">
$(".form_datetime").datetimepicker({ format: '03/01/19 09:00' });
</script>
<label for="inputUnidades">Selecione unidade</label>
<select class="form-control" id="inputUnidades" name="inputUnidades">
{% for item_unidade in unidade2 %}
<option value="{{ item_unidade }}">{{ item_unidade }}</option>
{% endfor %}
</select>
<input type="submit">
{% if descricao != None %}
<br><br>
<p>
Data Inicial: {{ descricao }}<br>
Data Final: {{ descricao2 }}<br>
Unidade:{{ item_unidade }}
Tabela:{{ passar|safe }}
</p>
{% endif %}
<a href="{% url 'graficos' %}" class="btn btn-primary">Grafico2</a>
<a href="{% url 'tela_graficos' %}" class="btn btn-primary">Grafico</a>
</form>
{% endblock %}
为此工作,我不知道为什么用select返回错误:
<label for="inputUnidades">Selecione unidade</label>
<select class="form-control" id="inputUnidades" name="inputUnidades">
{% for item_unidade in unidade2 %}
<option value="{{ item_unidade }}">{{ item_unidade }}</option>
{% endfor %}
</select>
我的views.py:
<label for="item_unidade">item_unidade:</label>
<input id="item_unidade" type="number" name="item_unidade" value="{{ item_unidade }}" class="number" /><br>
<input type="submit">
答案 0 :(得分:0)
请更改此:
<label for="inputUnidades">Selecione unidade</label>
<select class="form-control" id="inputUnidades">
{% for item_unidade in unidade2 %}
<option>{{ item_unidade }}</option>
{% endfor %}
</select>
由此:
<label for="inputUnidades">Selecione unidade</label>
<select class="form-control" id="inputUnidades" name="inputUnidades">
{% for item_unidade in unidade2 %}
<option>{{ item_unidade }}</option>
{% endfor %}
</select>
别忘了使用属性 name 来获取Django的值,而不用 id 。
更新:
不要忘记将值添加到选项示例中:
<select class="form-control" name="mySelect" id="mySelect">
{% for product in product_list %}
<option value="{{ product.pk }}">{{ product.name }}</option>
{% endfor %}
</select>
答案 1 :(得分:0)
您的代码段之间的区别-有效的代码段和无效的代码段是输入控件名称。 名称用作POST请求传递的字典中的键。
您要在“选择”版本中调用条目inputUnidades
,在“输入”版本中调用item_unidade
-并且视图代码在此行中占用item_unidade
:
item_unidade = request.POST['item_unidade']
(而且,由于其他答案的提示,您似乎已经在中途编辑了代码-永远不要这样做-因为您可以破坏整个答案,然后变得毫无意义。要讨论尚不可行的建议解决方案,请使用“注释”,或者(如果需要)编辑您的问题,但在问题的 end 中添加新信息。请勿更改其他人正在审阅并以其答案为基础的代码。当我开始此答案时,没有name
标记-现在只是名称不正确,但我不得不重写答案)
尝试仅使用此:
<label for="inputUnidades">Selecione unidade</label>
<select class="form-control" id="inputUnidades" name="item_unidade">
{% for item_unidade in unidade2 %}
<option value="{{ item_unidade }}">{{ item_unidade }}</option>
{% endfor %}
</select>