2017-06-13 12 views
1

私がやっていることは、2つ以上のアプリケーションに共通の名前空間を持つことです。3つのアプリケーション1つの名前空間

ダッシュボード(他のアプリを表示する管理パネル)、クライアント(ファンシーテーブルを表示)、オーダー(クライアントと同じ)の3つのアプリを持つアプリフォルダがあります。

url(r'^clients/', include('apps.clients.urls')), 
url(r'^orders/', include('apps.orders.urls')), 

とクライアントで:ダッシュボード/ urls.pyで

url(r'^dashboard/', include('apps.dashboard.urls', 
           namespace='dashboard', 
           app_name='dashboard')), 

:私は私のメインのurls.pyで

-- apps 
    |-- dashboard 
    | |-- views.py 
    | |-- models.py 
    | |-- urls.py 
    |-- clients 
    | |-- views.py 
    | |-- models.py 
    | |-- urls.py 
    |-- orders 
    | |-- views.py 
    | |-- models.py 
    | |-- urls.py 

url(r'^$', views.AllClientsList.as_view(), name='clients-all'), 
は次のようになります

だから、私は同じnaクライアントとオーダーアプリのURLのmespaceを{% url "dashboard:clients-all" %}として使用します。しかし、それは単に動作しません - NoReverseMatch: Reverse for 'customers_detailed' not found. 'customers_detailed' is not a valid view function or pattern name.

それを行う方法はありますか?

更新:<a href='{% url 'dashboard:customers-all' %}'>Customers</a>のようにリンクします。「erroes」のためのreverseは「customers-all」が見つかりません。「customers-all」は有効なビュー関数またはパターン名ではありません。 urls.py

urlpatterns = [ url(r'^dashboard/', include('apps.dashboard.urls')), ] 

アプリケーション/ダッシュボード/ urls.py

app_name = 'dashboard' 
urlpatterns = [ url(r'^customers/', include('apps.customers.urls')), ] 

アプリケーション/顧客/ urls.py

app_name = 'customers' 
urlpatterns = [ url(r'^$', views.AllCustomerList.as_view(), name='customers-all'), ] 
+0

''customers_detailed'または問題のURLパターンを取り消そうとしているビュー/テンプレートのいずれも表示されていません。 – Alasdair

+0

@Alasdair Djangoが 'All Clients'(/ dashboard/clients /である必要があります)でクラッシュします。または、テンプレート全体を表示する必要がありますか? –

+1

クラッシュした場合、エラーメッセージに 'NoReverseMatch:Reverse for 'customers_detailed''が含まれているとは思われません。 – Alasdair

答えて

1

あなたdashboard URLがcustomers URLが含まれているので、あなたが必要ネストされた名前空間を含める:

{% url 'dashboard:customers:customers-all' %} 
関連する問題