Django Pass 值从下拉菜单中查看
Posted
技术标签:
【中文标题】Django Pass 值从下拉菜单中查看【英文标题】:Django Pass value from dropdown menu to view 【发布时间】:2021-10-15 17:21:08 【问题描述】:我写了一个密码生成器,我希望用户可以自定义长度。如何将模板下拉菜单中的值传递给我的视图,以便创建正确长度的密码。
这是我现在的views.py:
def view_passwordgenerator(request):
characters = list(string.ascii_letters + string.digits + "!@#$%^&*()")
random.shuffle(characters)
length = 10
password = []
for i in range(length):
password.append(random.choice(characters))
random.shuffle(password)
pw = ("".join(password))
context = 'password': pw, 'length': length
return render(request, 'home/passwordgenerator.html', context)
【问题讨论】:
【参考方案1】:在views.py
添加这个
length = int(request.GET.get('length')) # UPDATED to cast int
在html file
中添加以下内容:
<form action="% url 'view_passwordgenerator' %">
<select name="length">
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12" selected="selected">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
</select> Length
<input type="submit" value="Generate Password" class="btn btn-primary">
</form>```
从上下文中删除length
如需完整详细示例,请访问我的Django Password Generator Github Repo
【讨论】:
这应该可以,如何将 String 类型从 length = request.GET.get('length') 转换为我的 int,出现此错误:TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
如果我尝试转换它for i in range(int(length)):
已修复!完全忘记了。我的错!现在它应该是完美无缺的。享受吧。
在***中,如果答案符合您的等待,那么您应该点击复选标记关闭线程
已经尝试过您的修复,但不起作用TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
不用担心,如果它有效,我会将其标记为已解决。
这是我编辑的代码hastebin.com/alopevehip.csharp以上是关于Django Pass 值从下拉菜单中查看的主要内容,如果未能解决你的问题,请参考以下文章