I have read the doc, what you say is helpfull, thanks! 

在 2015年1月8日星期四UTC+8下午7时33分42秒,Edgar Gabaldi写道:
>
> There is not your problem, but maybe will be in future. The best way to 
> clean fields that depend of other fields is override the clean method of 
> form.
>
>
> https://docs.djangoproject.com/en/1.7/ref/forms/validation/#cleaning-and-validating-fields-that-depend-on-each-other
>
> On Thu, Jan 8, 2015 at 9:28 AM, 赵飞 <[email protected] <javascript:>> 
> wrote:
>
> That's it!  Thanks very very much, you help me a lot!
>
> 2015-01-08 19:10 GMT+08:00 James Schneider <[email protected] 
> <javascript:>>:
>
> Oh, you are passing a URL to render() instead of a template name. Try 
> something like this:
>
> return render(request, 'signup.html', {'form': signup_form})
>
> Sorry, didn't catch that the first time.
>
> -James
>
>
> On Thu, Jan 8, 2015 at 1:34 AM, 赵飞 <[email protected] <javascript:>> 
> wrote:
>
> 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=
>
> ...

-- 
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/1ea2f037-5fc3-4283-b650-4f9bed896c7c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to