1

私のtestProject/urls.pyはこれです

from django.conf.urls import patterns, include, url
from testapp import urls
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'testproject.views.home', name='home'),
    # url(r'^testproject/', include('testproject.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
     url(r'^admin/', include(admin.site.urls)),
     url(r'^', include(urls)),
)

私のtestApp/urls.pyはこれです

from django.conf.urls import patterns, include, url
from testapp.forms import UsersForm
from templates import login.html

urlpatterns = patterns('',

url(r'^$', 'django.contrib.auth.views.login', {'template_name': 'testproject/templates/login.html', 'authentication_form':UsersForm}),

)

今、私が実行してサーバーを実行すると

python manage.py runserver

それは私に

SyntaxError at /

言うエラー

invalid syntax (urls.py, line 3)
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 1.5.2
Exception Type: SyntaxError
Exception Value:    
invalid syntax (urls.py, line 3)
Exception Location: /home/ayman/Documents/djcode/testproject/testproject/urls.py in   <module>, line 2

そしてトレースバックは

Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  103.                     resolver_match = resolver.resolve(request.path_info)
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in resolve
  319.             for pattern in self.url_patterns:
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in url_patterns
  347.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py" in urlconf_module
  342.             self._urlconf_module = import_module(self.urlconf_name)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py" in import_module
  35.     __import__(name)
File "/home/ayman/Documents/djcode/testproject/testproject/urls.py" in <module>
  2. from testapp import urls

Exception Type: SyntaxError at /
Exception Value: invalid syntax (urls.py, line 3)

構文エラーが発生する理由は何ですか? エラーが行 3 にあると書かれている場所と、行 2 にあると書かれている場所があるため、重みがあります。Django の一般的なログイン ビューを変更して使用することを決定するまで、これはほんの数分前に機能していたことに注意してください。フォームを authentication_form として渡すときにエラーが発生し、そのエラーを修正しましたが、そのエラーを修正した直後に、この構文エラーが発生しました。

フォームを authentication_form として渡すことに関する以前の問題は、参照としてここで表示できます

Django汎用ログインビューが「strオブジェクトは呼び出し可能ではありません」というエラーを返します

それを包むだけで役立ちます。

4

2 に答える 2

2

testapp.urls にエラーがあります

from django.conf.urls import patterns, include, url
from testapp.forms import UsersForm
from templates import login.html

urlpatterns = patterns('',

url(r'^$', 'django.contrib.auth.views.login', {'template_name': 'testproject/templates/login.html', 'authentication_form':UsersForm}),
)

from templates import login.htmlPythonソースではないため、インポートする必要はありません。この行を削除するだけで実行できます。ビューは template_name のパラメーターとして文字列のみを想定し、Python オブジェクトを必要としないためです。

于 2013-10-19T20:28:16.843 に答える
1

testProject/urls.py で次のことを試してください。

from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()

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

これを行う別の方法:

from django.conf.urls import patterns, include, url
from testapp.urls import urlpatterns as testapp_urls
from django.contrib import admin
admin.autodiscover()

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

に関するドキュメントの次のセクションもお読みincludeください

于 2013-10-19T20:07:56.080 に答える