私がやっていることは、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'), ]
''customers_detailed'または問題のURLパターンを取り消そうとしているビュー/テンプレートのいずれも表示されていません。 – Alasdair
@Alasdair Djangoが 'All Clients'(/ dashboard/clients /である必要があります)でクラッシュします。または、テンプレート全体を表示する必要がありますか? –
クラッシュした場合、エラーメッセージに 'NoReverseMatch:Reverse for 'customers_detailed''が含まれているとは思われません。 – Alasdair