2016-08-03 2 views
0

私はAppConfigにルータプロパティ(DRFのSimpleRouterのインスタンス)を追加しました。私は、私のurls.pyファイルにインストールされているすべてのアプリケーションのリストを取得し、私のURLパターンにrouterプロパティを持つ任意のアプリケーションを追加したいと思います。URLパターンファイル内にdjango.appsモジュールをロード

これは私のurls.pyファイルです:

from django.conf.urls import url, include 
from django.contrib import admin 
from django.apps import apps 

urlpatterns = [ 
    url(r'^admin/', include(admin.site.urls)) 
] 

# Loading the routers of the installed apps and core apps 
for app in apps.get_app_configs(): 
    if hasattr(app, 'router'): 
     urlpatterns += app.router.urls 

と、これは私の変更のAppConfigの例である:

from django.apps import AppConfig 
from .router import auth_router 


class AuthConfig(AppConfig): 

    name = "core.auth" 
    # to avoid classing with the django auth 
    label = "custom_auth" 

    # router object 
    router = auth_router 

    def ready(self): 
     from .signals import user_initialize, password_reset_set_token 

default_app_config = 'core.auth.AuthConfig' 

私は上記の溶液をしようとしたとき、私は「ジャンゴを取得し終わります.core.exceptions.AppRegistryNotReady:アプリケーションはまだ読み込まれていません。 "エラーメッセージ!

提案した解決策を試しましたが、hereは動作しませんでした。

答えて

1

エラーは、urls.pyフォルダによって引き起こされていませんでした.AppConfigによってエラーが発生していました。私は準備ができた方法の中でauth_routerをインポートしなければならなかった

from django.apps import AppConfig 


class AuthConfig(AppConfig): 

    name = "core.auth" 
    # to avoid classing with the django auth 
    label = "custom_auth" 

    # router object 
    router = None 

    def ready(self): 
     from .signals import user_initialize, password_reset_set_token 
     from .router import auth_router 
     self.router = auth_router 

default_app_config = 'core.auth.AuthConfig' 
関連する問題