Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django将值从模板传递到视图_Python_Django_Web - Fatal编程技术网

Python Django将值从模板传递到视图

Python Django将值从模板传递到视图,python,django,web,Python,Django,Web,我无法将值从模板传递到视图。基本上,我创建了一个用于用户注册的表单,并希望将模板中的值传递给视图,以便可以构造一个用户对象添加到数据库中。但不知何故,当我添加name={{user\u form.username}时,我的“输入”不起作用。另外,当我选择“借款人”、“利比亚人”和“办事员”时,我想分别传递值0、1、2,我能做些什么来实现这一点 下面是我的代码 <form id="user_form" method="post" action="/sign_up/" class=

我无法将值从模板传递到视图。基本上,我创建了一个用于用户注册的表单,并希望将模板中的值传递给视图,以便可以构造一个用户对象添加到数据库中。但不知何故,当我添加
name={{user\u form.username}
时,我的“输入”不起作用。另外,当我选择“借款人”、“利比亚人”和“办事员”时,我想分别传递值0、1、2,我能做些什么来实现这一点

下面是我的代码

      <form id="user_form" method="post" action="/sign_up/" class="form-signin" role="form">
          {% csrf_token %}
        <h2 class="form-signin-heading">Signup </h2>

            {% if error%}

        <div class="error"> Your registration has been unsuccessfull </div> 
        {% endif %}

        <input type="text" class="form-control" name="username" value="{{user_form.username}}" placeholder="Username" required autofocus>
        <input type="password" class="form-control" name="password1" placeholder="Password" value="" required>
        <input type="password" class="form-control" name="password2" placeholder="Retype password" value="" required>       


        <select class="form-control">
  <option value="2">Librarian</option>
  <option value="0">Borrower</option>
  <option value="1">Clerk</option>
</select>

        <button class="btn btn-lg btn-primary btn-block" type="submit">Sign Up</button>

      </form>
视图中.py

class UserForm(forms.Form):
    username = forms.CharField(max_length=30)
    password1 = forms.CharField(widget=forms.PasswordInput())
    password2 = forms.CharField(widget=forms.PasswordInput())
   def sign_up(request):
    registered = False;
    error = False;
    if request.method == 'POST':
        user_form = UserForm(request.POST)
        if user_form.is_valid():
            registered = True
            username = user_form.cleaned_data['username']
            password = user_form.cleaned_data['password']
            user = User.objects.create_user(username, None, password)
            user.save()
        else:
            error = True;
    else:
        user_form = UserForm()

    return render(request, 'books/sign_up.html',
                  {'user_form':user_form,
                   'registered':registered, 'error':error})

下面的表格应该有用

<form id="user_form" method="post" action="/sign_up/" class="form-signin" role="form">
    {% csrf_token %}
    <h2 class="form-signin-heading">Signup </h2>
    <input type="text" class="form-control" name="username"  value="{{user_form.username}}" placeholder="Username" required autofocus>
    <input type="password" class="form-control" name="password1" placeholder="Password" required>
    <input type="password" class="form-control" name="password2" placeholder="Retype password" required>      
    <select class="form-control">
        <option value="1">Librarian</option>
        <option value="0">Borrower</option>
        <option value="2">Clerk</option>
    </select>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Sign Up</button>
</form>

{%csrf_令牌%}
报名
图书管理员
借贷者
店员
注册
我所做的改变是:

  • 更改用户名和密码文本框的名称
  • 更改用户名文本框的类型
  • 选择控件中的附加值属性

  • 你能提供模板渲染行吗?你如何将表单对象传递给模板?我从来没有听说过任何类型为
    用户名的
    输入
    控件。。这是一种类型还是您这样命名的?为什么更改为name=“username”会将值传递给user\u form.username?值应该传递给
    value
    属性。现在编辑我的答案。我不太理解你的评论。您从未提及上述值属性。请刷新屏幕。此操作无效。在添加value=“{user\u form.username}}”之后,我的注册页面的输入框外只有“placeholder=“username”required autofocus>。