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>。