在django.contrib.auth.forms UserCreationForm中放置复选框可以通过自定义表单来实现。以下是一个示例代码:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class CustomUserCreationForm(UserCreationForm):
is_admin = forms.BooleanField(required=False)
class Meta:
model = User
fields = ('username', 'password1', 'password2', 'is_admin')
在上述代码中,我们创建了一个名为CustomUserCreationForm的自定义表单,继承自UserCreationForm。在表单中添加了一个名为is_admin的复选框字段。
接下来,我们需要在视图中使用这个自定义表单来创建用户:
from django.shortcuts import render, redirect
from .forms import CustomUserCreationForm
def register(request):
if request.method == 'POST':
form = CustomUserCreationForm(request.POST)
if form.is_valid():
form.save()
return redirect('home')
else:
form = CustomUserCreationForm()
return render(request, 'registration/register.html', {'form': form})
在上述代码中,我们导入了CustomUserCreationForm,并在register视图中使用它来处理用户注册的逻辑。
最后,我们需要在模板中渲染表单:
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">注册</button>
</form>
在上述代码中,我们使用{{ form.as_p }}
将表单渲染为HTML,并在表单中显示复选框字段。
这样,用户在注册时就可以看到一个包含复选框的表单,并选择是否为管理员。
领取专属 10元无门槛券
手把手带您无忧上云