1

django-registration拡張機能を使用している単純なdjangoサイトを作成しています。おそらく、django-registrationソースを自分のアプリであるかのようにプロジェクトにコピーしたことを追加する必要があります-私は他の誰かとサイトをやっていて、django環境は別の方法で構成されていますが、サイトのコードはsvn-私は私たち一人一人がdjango-registrationを別々にインストールすることを望んでいませんでした。

ルートのurls.pyファイルには次のものがあります。

import registration
...
urlpatterns = (
   ...
   url(r'^accounts/',include(registration.backends.default.urls),
)

「バックエンド」と「デフォルト」は、登録アプリ内のパッケージです。

Aptanaでは、コードチェックのエラーメッセージに次のように表示されます。「インポートからの未定義の変数:バックエンド」テストサーバーのデバッグモードでは、エラーは「'モジュール'オブジェクトに属性'バックエンド'」がありません。

そうするとfrom registration import backendsinclude(backends.default.urls)「デフォルト」が見つかりません。

私がそうするときそれは働きますfrom registration.backends import defaultinclude(default.urls)しかし私はそれが何にリンクするかをすぐに見ることができないので私はそれをこのようにしたくありません...

環境がパッケージを適切にロードしないのはなぜですか?同じファイルで、のようなパッケージ名を含む他のURLconf includeパスを使用しますがinclude(django.contrib.admin)、これらには問題はありません。アプリをインストールする代わりに登録ソースをコピーしたからですか?もしそうなら、これを行うための適切な方法は何ですか?それは望ましいソースコードの移植性を提供しますか?

4

1 に答える 1

1

urls.pyに登録モジュールをインポートするのではなく、登録URLのパスを文字列として指定してみてください。

url(r'^accounts/',include('registration.backends.default.urls'),
于 2012-12-09T15:31:39.013 に答える