That's it!  Thanks very very much, you help me a lot!

2015-01-08 19:10 GMT+08:00 James Schneider <[email protected]>:

> 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]> 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="{% 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
>> <https://groups.google.com/d/msgid/django-users/d62f49e5-993d-492b-9b7b-1e3cb329e63d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "Django users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/django-users/ZIsrf9vEXyg/unsubscribe.
> To unsubscribe from this group and all its topics, 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/CA%2Be%2BciVLaCjYiYFkbLHZuzf2tjU69i%3Dgt1f9TMMShspNyUqNZA%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CA%2Be%2BciVLaCjYiYFkbLHZuzf2tjU69i%3Dgt1f9TMMShspNyUqNZA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 



祝自由,开心!
----------------------------------------------------------------
中山大学
信息科学与技术学院
信息安全专业
赵飞
----------------------------------------------------------------

-- 
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/CAOV3_ptnXzKCFmomS0DJjnJrsCB%2BbdOFa%2Bk45K6yaT7TPMBA_g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to