在 DJango 表单中手动添加字段
Adding Field Manually in DJango Form
我正在 django 中制作一个登录注册系统,我希望我的表单数据保存在内置的“用户”table 和我定制的“编码器”table一起。我的表单有 6-7 个字段,我想将其插入自定义“编码器”table。但我只想在“用户”table 中插入“用户名”和“密码”。我不知道如何将“用户名”和“密码”与“表单”分开。这是我的代码
def f1(request):
form = codersform()
form2 = User()
if request.method == 'POST':
form = codersform(request.POST)
if form.is_valid:
form.save()
form2 = coders.objects.filter('name', 'pasw')#Getting Error
form2.save()#in these two part
user = form.cleaned_data.get('name')
messages.success(
request, "Account Created Successfully For " + user)
return redirect('login')
else:
messages.error(request, "Please Fill Out All Fields Correctly")
return render(request, 'signup.html', {'form': form})
表单代码
<form action="" method="POST" class="register-form" id="register-form">
{% csrf_token %}
<div class="form-group">
<label for="name"><i class="zmdi zmdi-account material-icons-name"></i></label>
{{form.name}}
</div>
<div class="form-group">
<label for="matid"><i class="zmdi zmdi-account-box"></i></label>
{{form.matid}}
</div>
<div class="form-group">
<label for="phone"><i class="zmdi zmdi-phone"></i></label>
{{form.phone}}
</div>
<div class="form-group">
<label for="Semester"><i class="zmdi zmdi-star"></i></label>
{{form.semester}}
</div>
<div class="form-group">
<label for="Cf"><i class="zmdi zmdi-code"></i></label>
{{form.Cf}}
</div>
<div class="form-group">
<label for="email"><i class="zmdi zmdi-email"></i></label>
{{form.email}}
</div>
<div class="form-group">
<label for="pass"><i class="zmdi zmdi-lock"></i></label>
{{form.pasw}}
</div>
<div class="form-group">
<input type="checkbox" name="agree-term" id="agree-term" class="agree-term" />
<label for="agree-term" class="label-agree-term"><span><span></span></span>I agree all statements in <a href="#" class="term-service">Terms of service</a></label>
</div>
<div class="form-group form-button">
<input type="submit" name="signup" id="signup" class="form-submit" value="Register"/>
</div>
</form>
谢谢:)
我在表单字段中看不到用户名字段,也许您使用 name 作为用户名..
要创建用户对象,您需要提供用户对象的所有必填字段
试试这个修改后的代码:
def f1(request):
form = codersform()
if request.method == 'POST':
form = codersform(request.POST)
if form.is_valid:
form.save()
User.objects.create(username=form.cleaned_data['name'],password=form.cleaned_data['pasw']
messages.success(
request, "Account Created Successfully For " + user)
return redirect('login')
else:
messages.error(request, "Please Fill Out All Fields Correctly")
return render(request, 'signup.html', {'form': form})
我正在 django 中制作一个登录注册系统,我希望我的表单数据保存在内置的“用户”table 和我定制的“编码器”table一起。我的表单有 6-7 个字段,我想将其插入自定义“编码器”table。但我只想在“用户”table 中插入“用户名”和“密码”。我不知道如何将“用户名”和“密码”与“表单”分开。这是我的代码
def f1(request):
form = codersform()
form2 = User()
if request.method == 'POST':
form = codersform(request.POST)
if form.is_valid:
form.save()
form2 = coders.objects.filter('name', 'pasw')#Getting Error
form2.save()#in these two part
user = form.cleaned_data.get('name')
messages.success(
request, "Account Created Successfully For " + user)
return redirect('login')
else:
messages.error(request, "Please Fill Out All Fields Correctly")
return render(request, 'signup.html', {'form': form})
表单代码
<form action="" method="POST" class="register-form" id="register-form">
{% csrf_token %}
<div class="form-group">
<label for="name"><i class="zmdi zmdi-account material-icons-name"></i></label>
{{form.name}}
</div>
<div class="form-group">
<label for="matid"><i class="zmdi zmdi-account-box"></i></label>
{{form.matid}}
</div>
<div class="form-group">
<label for="phone"><i class="zmdi zmdi-phone"></i></label>
{{form.phone}}
</div>
<div class="form-group">
<label for="Semester"><i class="zmdi zmdi-star"></i></label>
{{form.semester}}
</div>
<div class="form-group">
<label for="Cf"><i class="zmdi zmdi-code"></i></label>
{{form.Cf}}
</div>
<div class="form-group">
<label for="email"><i class="zmdi zmdi-email"></i></label>
{{form.email}}
</div>
<div class="form-group">
<label for="pass"><i class="zmdi zmdi-lock"></i></label>
{{form.pasw}}
</div>
<div class="form-group">
<input type="checkbox" name="agree-term" id="agree-term" class="agree-term" />
<label for="agree-term" class="label-agree-term"><span><span></span></span>I agree all statements in <a href="#" class="term-service">Terms of service</a></label>
</div>
<div class="form-group form-button">
<input type="submit" name="signup" id="signup" class="form-submit" value="Register"/>
</div>
</form>
谢谢:)
我在表单字段中看不到用户名字段,也许您使用 name 作为用户名..
要创建用户对象,您需要提供用户对象的所有必填字段
试试这个修改后的代码:
def f1(request):
form = codersform()
if request.method == 'POST':
form = codersform(request.POST)
if form.is_valid:
form.save()
User.objects.create(username=form.cleaned_data['name'],password=form.cleaned_data['pasw']
messages.success(
request, "Account Created Successfully For " + user)
return redirect('login')
else:
messages.error(request, "Please Fill Out All Fields Correctly")
return render(request, 'signup.html', {'form': form})