html - How to pass input value to function in view.py
问题描述
Objective:
** To pass input value itemnumbervalue to itemnumber() in views.py
> Error occured:
method object is not subscribable line 17 in view.py
Already applied techniques to correct the problem:
case 1: Tried [] and () both braces
if (request.POST.get['submitted']):
c = request.POST['ENTER_ITEM_NUMBER']
I tried many options like "remove get", and tried braces() and []
views.py:
from .forms import InputForm
def home_view(request):
context1 ={}
context1['form'] = InputForm(request.POST)
return render(request, "input.html", context1)
def itemnumber(request):
if (request.POST.get['submitted']):
c = request.POST['ENTER_ITEM_NUMBER']
print("input valuegiven by user",c)*
cursor = connection.cursor()
try:
itemnumbervalue = c
C=cursor.execute(f"EXEC ValidateBusinessrule '0000000000{itemnumbervalue}'")
result_set = cursor.fetchall()
result_set1= [' {} '.format(x) for x in result_set]
context = {"row": result_set1}
return render(request, "home.html", context)
finally:
cursor.close()
forms.py
class InputForm(forms.Form):
regex = re.compile('^([1-9]{8})$', re.UNICODE)
ENTER_ITEM_NUMBER= forms.RegexField(max_length=8, regex=regex,help_text=("Required 8 digits between {0-9}."))
home.html
<body>
<table>
<tr>
<ul>
<th>(column 1,column 2)</th>
</ul>
<tr>
<ul >
{% for row in row %}
<td style= "text-align: center;">
{{ row }}
</td>
</ul>
</tr>
{% endfor %}
</tr>
</table>
</body>
input.html
<body>
<form action = "{% url 'item'%}" method = "POST">
{% csrf_token %}
{{form}}
<input type="submit" value=Submit" name="submitted">
</form>
</body>
problem details:
To get input from user and give this input to itemnumbervalue in itemnumber() in view.py. I already validated by putting itemnumbervalue='12345678' (without input value from user) is working fine and getting resultant table.
解决方案
尝试使用request.POST.get('submitted')
或request.POST['submitted']
。
不同的是,如果在字典中没有找到键,则.get
方法返回None
,但是如果没有找到键,则直接索引键,则会抛出KeyError
异常。
要查看您在 request.POST 中获得的值,您可以打印它。
同样在print("input valuegiven by user",c)*
末尾删除 * 是无效的语法。
PS我尝试重现此问题并通过上述指定方法成功解决。
推荐阅读
- linker - 如何消除 Xcode for Ionic-v1 App 中的链接器错误?
- javascript - HTML中水平/宽表的分页
- c# - 将照片从 Microsoft Graph 客户端 SDK 转换为 Base64String
- python - 使用 panda 数据框插入 SQL 表
- python - Python在一项和列表之间创建排列
- java - 让 servlet 从 csv 文件打印到 xhtml 页面/PluginExecutionException
- javascript - JavaScript——内联 switch 语句?
- php - 如何检查 NULL 并将外键传递给数据库?
- c# - 如何在 WPF 中扫描蓝牙设备?
- sql - 我想知道当多个 group by 时它是如何工作的,比如 group by column_name(1)、column_name(2)、column_name(3)