#django #django-models #django-forms #django-views
#django #django-модели #django-forms #django-просмотры
Вопрос:
Я пытался создать клиента:
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. Пожалуйста, попробуйте заменить
<input class="btn btn-primary" type="submit" type="button" style="width: 27%;margin-left: 63%;margin-top: 4%;">
на<input class="btn btn-primary" type="submit" style="width: 27%;margin-left: 63%;margin-top: 4%;">
. Т.е. оставить толькоtype="submit"
(без объявления кнопки).
Ответ №1:
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('/')