@sailor_r
кратко о себе

Почему данные с формы не сохраняются в бд?

Я делаю регистрацию на django, но у меня почему-то не сохраняется все в базу данных. Пробовал сохранять все двумя способами.
Во-первых, в forms.py я создал форму вот так:
class RegistationForm(UserCreationForm):
    username = CharField(widget=TextInput(attrs={'class': 'form-control',
                                                 'placeholder': 'Имя пользователя'}))
    email = CharField(widget=TextInput(attrs={'class': 'form-control',
                                              'placeholder': 'Логин'}))
    password1 = CharField(widget=TextInput(attrs={'class': 'form-control',
                                                  'placeholder': 'Пароль'}))
    class Meta:
        model = User
        fields = ["username", "email", "password1"]
        widgets = {
            "username": TextInput(attrs={'class': 'form-control',
                                         'placeholder': 'Имя пользователя'}),

            "email": TextInput(attrs={'class': 'form-control',
                                      'placeholder': 'Логин'}),

            "password1": TextInput(attrs={'class': 'form-control',
                                          'placeholder': 'Пароль'}),
        }


Во-вторых, html шаблон вот такой:
<form method="post">
        {% csrf_token %}
	<div class="form-group input-group">
		<div class="input-group-prepend">
		    <span class="input-group-text"> <i class="fa fa-user"></i> </span>
		 </div>
            {{ form.username }}
    </div>

    <div class="form-group input-group">
    	<div class="input-group-prepend">
		    <span class="input-group-text"> <i class="fa fa-envelope"></i> </span>
		 </div>
            {{ form.email }}
    </div>

    <div class="form-group input-group">
    	<div class="input-group-prepend">
		    <span class="input-group-text"> <i class="fa fa-lock"></i> </span>
		</div>
            {{ form.password1 }}
    </div>

    <div class="form-group">
        <button type="submit" class="btn btn-primary btn-block"> Создать </button>
    </div>
    <p class="text-center">Уже есть аккаунт? <a href="">Войти</a> </p>

    </form>


а во views.py пробовал сохранять с помощью вот такой функции:
def registation(request):
    if request.method == 'POST':
        form = RegistationForm(request.POST)
        if form.is_valid():
            form.save()
        else:
            error = ''
    context = {'form': form
    }
    template = 'registation.html'
    return render(request, template, context)


В итоге ничего не сохранилось и я попробовал сделать это через класс, но тоже ничего
class RegisterFormView(FormView):
    form_class = RegistationForm
    template_name = 'registation.html'
    success_url = reverse_lazy('home')

    def form_valid(self, form):
        form.save()
        return super(RegisterFormView, self).form_valid(form)
  • Вопрос задан
  • 311 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы