【问题标题】:Django Pass value from dropdown menu to viewDjango Pass 值从下拉菜单中查看
【发布时间】: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)

【问题讨论】:

    标签: django view dropdown


    【解决方案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)):
    • 已修复!完全忘记了。我的错!现在它应该是完美无缺的。享受吧。
    • 在stackoverflow中,如果答案符合您的等待,那么您应该点击复选标记关闭线程
    • 已经尝试过您的修复,但不起作用TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType' 不用担心,如果它有效,我会将其标记为已解决。
    • 这是我编辑的代码hastebin.com/alopevehip.csharp
    猜你喜欢
    • 1970-01-01
    • 2015-11-18
    • 2019-05-23
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    相关资源
    最近更新 更多