2017-07-21 53 views
-2

customers_form.html無法將數據存儲在數據庫

 <form> 
     <fieldset class='text-center'> 
      <legend>Create your Account</legend> 
      <div> 
       <form action="" method="post" enctype="multipart/form-data"> 
        {% csrf_token%} 
        {% include 'registration/form-template.html' %} 
        <div class="form-group"> 
         <div align="center" > 
          <input type="submit" class="btn btn-success" value="submit"/> 
          <input type="hidden" name="next" value="{{ next }}" /> 
         </div> 
        </div> 
       </form> 
      </div> 
      <br> 
      <a href="forgot_password.html">Forgot password?</a> 
     </fieldset> 
     </form> 

形式,template.html

{% for field in form %} 
    <div class="form-group"> 
     <div class="col-som-offset-2 col-som-10"> 
      <span class="text-danger small">{{ field.errors }}</span> 
     </div> 
     <label >{{ field.label_tag }}{{ field }}</label> 
    </div> 
{% endfor %} 

應用程序/ urls.py

from django.conf.urls import url 
from . import views 
from django.contrib.auth import views as auth_views 

app_name = 'registration' 

urlpatterns = [ 
    url(r'^$', views.IndexView.as_view(), name='registration'), 
    url(r'^customer/add/$', views.UserFormView.as_view(), name='customer-add'), 

] 

凸出/ urls.py

from django.conf import settings 
from django.contrib.auth import urls 
from django.conf.urls.static import static 
from django.conf.urls import include, url 
from django.contrib import admin 

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'', include('registration.urls')), 
    url(r'^accounts/', include('django.contrib.auth.urls')) 

] 

views.py

from django.views import generic 
from .models import customers 
from django.views.generic.edit import CreateView, UpdateView, DeleteView 
from django.shortcuts import render, redirect 
from django.contrib.auth import authenticate, login 
from django.views import View 
from .forms import UserForm 
from django.contrib.auth.decorators import login_required 


class IndexView(generic.ListView): 
    template_name = 'registration/home.html' 

    def get_queryset(self): 
     return customers.objects.all() 


class UserFormView(View): 
    form_class = UserForm 
    template_name = 'registration/customers_form.html' 

    # display blank form 
    def get(self, request): 
     form = self.form_class(None) 
     return render(request, self.template_name, {'form': form}) 

    # process form data 
    def post(self,request): 
     form = self.form_class(request.POST) 

     if form.is_valid(): 
      user = form.save(commit=False) 

      username = form.cleaned_data['username'] 
      password = form.cleaned_data['password'] 
      user.set_password(password) 
      user.save() 

      # return username if credentials are correct 
      user = authenticate(username=username, password=password) 

      if user is not None: 

       if user.is_active: 
        login(request, user) 
        return redirect('registration:index') 
     return render(request, self.template_name, {'form': form}) 

,當我在註冊按鈕,然後點擊它重定向回註冊表格,並且不顯示任何錯誤。一切正常,但沒有存儲在Django用戶模型中的數據。

forms.py

from django import forms 
from django.contrib.auth.models import User 
from django.forms import ModelForm 


class UserForm(forms.ModelForm): 
    password = forms.CharField(widget=forms.PasswordInput) 

    class Meta: 
     model = User 
     fields = [ 
      'username', 
      'email', 
      'password', 
     ] 

我要註冊在Django的用戶模型中的用戶,但我不能。

+0

請提供您的表格和型號。另外,試着用英文解釋這個頁面的用途。沒有人想通過代碼來解釋你想要做什麼,因爲它可能是錯誤的,並且很難解釋。 –

+0

我想使用django的'django.contrib.auth.urls'來註冊用戶。但當我點擊提交按鈕,然後什麼都沒有發生,它再次重定向到註冊頁面。 –

回答

1

您的表單標籤沒有行動......

<form action="" method="post" enctype="multipart/form-data">

action屬性告知的形式,其中張貼到。這應該是您的POST數據所在的URL。它也不像你有任何輸入...

+0

在註冊用戶什麼可以在行動屬性? –

+0

我相信你會是'客戶/添加'。 –

+0

它不工作...任何其他解決方案? #JakeDenison –