I want to make a signup page, when user click signup, it will check if the 
two password are the same, when not, give a error message after "confirm 
password". 

But when I call "return render(request, reverse("accounts:signup"), 
{'form': signup_form}) " in my views.py, it shows me an error, the 
traceback is:

 Environment:

    Request Method: POST
   Request URL: http://127.0.0.1:8000/accounts/signup_post/
   
   Django Version: 1.7
   Python Version: 2.7.5
   Installed Applications:
   ('django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'accounts')
   Installed Middleware:
   ('django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware')
   
   Template Loader Error:
   Django tried loading these templates, in this order:
   Using loader django.template.loaders.filesystem.Loader:
   Using loader django.template.loaders.app_directories.Loader:
   
   Traceback:
   File 
"/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/core/handlers/base.py"
 
in get_response
     111.                     response = wrapped_callback(request, 
*callback_args, **callback_kwargs)
   File "/Users/feizhao/dropbox/nahan/accounts/views.py" in signup_post
     64.     return render(request, reverse("accounts:signup"), {'form': 
signup_form})
   File 
"/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/shortcuts.py"
 
in render
     48.     return HttpResponse(loader.render_to_string(*args, **kwargs),
   File 
"/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/template/loader.py"
 
in render_to_string
     170.         t = get_template(template_name, dirs)
   File 
"/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/template/loader.py"
 
in get_template
     144.     template, origin = find_template(template_name, dirs)
   File 
"/Users/feizhao/.virtualenvs/nahan/lib/python2.7/site-packages/django/template/loader.py"
 
in find_template
     136.     raise TemplateDoesNotExist(name)
   
   Exception Type: TemplateDoesNotExist at /accounts/signup_post/
   Exception Value: /accounts/signup/

my account app looks like:

   $ tree -L 3 accounts
   accounts
   ├── __init__.py
   ├── admin.py
   ├── forms.py
   ├── locale
   │   └── zh_CN
   ├── migrations
   │   ├── 0001_initial.py
   │   ├── __init__.py
   ├── models.py
   ├── static
   │   └── accounts
   │       └── login.css
   ├── templates
   │   └── accounts
   │       ├── base.html
   │       ├── login.html
   │       └── signup.html
   ├── tests.py
   ├── urls.py
   ├── views.py

 urls.py:

    urlpatterns = patterns(
       '',
       url(r'^accounts/', include('accounts.urls', namespace="accounts")),
       url(r'^admin/', include(admin.site.urls)),
   )

accounts/urls.py:

    urlpatterns = patterns(
       '',
       url(r'^login/$', views.login, name='login'),
       url(r'^signup/$', views.signup, name='signup'),
       url(r'^login_post/$', views.login_post, name='login_post'),
       url(r'^signup_post/$', views.signup_post, name='signup_post'),
   )

signup_post function in views.py: 

    def signup_post(request):
       if request.method == 'POST':
           signup_form = forms.SignupForm(request.POST)
   
           if signup_form.is_valid():
               signup_info = signup_form.cleaned_data
               username = signup_info['username']
               email = signup_info['email']
               password = signup_info['password_1']
               user = User.objects.create_user(
                   username=username,
                   email=email,
                   password=password)
               user.save()
   
       else:
           signup_form = forms.SignupForm()
   
       return render(request, reverse("accounts:signup"), {'form': 
signup_form})

I have read [Django TemplateDoesNotExist][1] and other similar questions, 
but no help!

  [1]: 
https://stackoverflow.com/questions/4765003/django-templatedoesnotexist

在 2015年1月7日星期三UTC+8下午10时03分09秒,赵飞写道:
>
> I want to make a signup page just like:
>
>
> <https://lh5.googleusercontent.com/-BYeglZkQ0cM/VK06PkzpdPI/AAAAAAAAAN0/l5xB5VdkbJk/s1600/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%2B2015-01-07%2B%E4%B8%8B%E5%8D%889.52.08.png>
> When user click signup, I want to check the if the two password are the 
> same, when not, give a error message after "confirm password".  Here is my 
> code:
>
> *forms.py*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *class SignupForm(forms.Form):    username = forms.CahrField(        
> label=_("username"),        max_length=30,    )    email = 
> forms.EmailField(label=_('email'),)    password_1 = forms.CharField(        
> label=_("password"),        widget=forms.PasswordInput,    )    password_2 
> = forms.CharField(        label=_("password_confirmed"),        
> widget=forms.PasswordInput,    )    def clean_password_2(self):        
> password_1 = self.cleaned_data.get("password_1")        password_2 = 
> self.cleaned_data.get("password_2")        if password_1 and password_2 and 
> password_1 != password_2:            raise 
> forms.ValidationError(_('password confirm failed'))        return 
> password_2 signup.html*
>
> <form method="post" action="{% url 'accounts:signup_post' %}">
>     {% csrf_token %}
>     <table>
>     {% for field in form %}
>         <tr>
>             <td>{{ field.label_tag }}</td>
>             <td>{{ field }}</td>
>             <td>{{ field.errors }}</td>
>         </tr>
>     {% endfor %}
>     </table>
>
>     <input type='submit' id="submit" value={% trans "signup" %}>
>     <a href="{% url 'accounts:login' %}">{% trans "Already have 
> accounts?" %}</a>
> </form> 
>
>
>
> *views.py*
>
> def signup_post(request):
>     if request.method == 'POST':
>         signup_form = forms.SignupForm(request.POST)
>
>         if signup_form.is_valid():
>             signup_info = signup_form.cleaned_data
>             username = signup_info['username']
>             email = signup_info['email']
>             password = signup_info['password_1']
>             user = User.objects.create_user(
>                 username=username,
>                 email=email,
>                 password=password)
>             user.save()
>             # redirect to main page(not written so far)
>         else:
>             # I guess something wrong here, but no idea how to fix it.
>             return redirect(reverse("accounts:signup"))
>
>     else:
>         signup_form = forms.SignupForm()
>
>     return render(reverse("accounts:signup"), {'form': signup_form}) 
>
> Can anyone help me out? 
> *Thanks!*
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/d62f49e5-993d-492b-9b7b-1e3cb329e63d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to