为什么当我尝试在Django中创建用户时表单不响应?

时间:2020-09-18 18:37:49

标签: django django-models django-forms django-views

我试图结交客户:

models.py

class Customer(models.Model):
    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
    name = models.CharField(max_length=20, null=True)
    phone = models.CharField(max_length=10, null=True)
    email = models.CharField(max_length=40, null=True)

使用此表格

forms.py

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']
        widgets = {
            'username': forms.TextInput(attrs={'placeholder': 'username'}),
            'email': forms.TextInput(attrs={'placeholder': 'email'}),
            'password1': forms.TextInput(attrs={'placeholder': 'password'}),
            'password2': forms.TextInput(attrs={'placeholder': 'repeat password'}),
        }

html


        <form method="post">
            {% csrf_token %}
            <ul class="list-group list-group-flush">
                <li class="list-group-item"><p>{{ form.username }}</p></li>
                <li class="list-group-item"><p>{{ form.email }}</p></li>
                <li class="list-group-item"><p>{{ form.password1 }}</p></li>
                <li class="list-group-item" style="border-bottom: 1px solid #e4e5e6;"><p>{{ form.password2 }}</p></li>
            </ul>
            <input class="btn btn-primary" type="submit" type="button" style="width: 27%;margin-left: 63%;margin-top: 4%;">
        </form>

views.py

def register(request):
    form = CreateUserForm()
    if request.method == 'POST':
        form = CreateUserForm(request.POST)
        if form.is_valid():
            user = form.save()
            group = Group.objects.get(name='customer')
            user.groups.add(group)
            user.objects.create(
                user=user,
                name=user.username,
            )
            return redirect('/')
    return render(request, 'register_page.html', {
        'form': form,
    })

但是当我单击“提交”时,没有任何反应,也没有创建记录。 请帮助:(

dasdsadasdasdasdfasewgaggiuhihqworeghoashgiiasigjioasigjiaipgjiaiasoopijpgjiaspjgpisapigaspj

1 个答案:

答案 0 :(得分:0)

if form.is_valid():
        user = form.save()
        group = Group.objects.get(name='customer')
        user.groups.add(group)
        user.save()
        Customer.objects.create(
            user=user,
            name=user.username,
        )
        return redirect('/')