2016-05-25 18 views
0

私は現在ビルドしているサイトに簡単に都市固有のものをつける必要があります。私はこれのような何かをしようとしています - http://example.com/XX/normal-slug。私は私のurls.pyに設定していることはこれです:URLのparamsを無視する

url(r'^(?P<city>[a-zA-Z]{2})/', include('homepage.urls', namespace='homepage')), 
url(r'^(?P<city>[a-zA-Z]{2})/section/', include('section.urls', namespace='section')), 

# etc 

私が今直面しています問題は、突然、私のすべての方法は、すべてが今、「都市= XX」のparamを期待しているということです。ミドルウェアで実際の都市ビジネスロジックを処理する予定です。私の質問は...とにかくdjangoは名前付きparamを "無視"していますか?私は現在、すべての私の意見を** kwardsか 'city' paramのいずれかに変更したくありません。都市コードをハードコードすると、それは私の期待通りです:

url(r'^XX/section/', include('section.urls', namespace='section')), 

私はその動作を動的に複製できますか?

あなたは、パラメータを受け入れるように非キャプチャ正規表現を使用しますが、ビューにそれを渡すことはできません

+0

を受け取ることになりますが、あなたは 'URL(r」を試してみました( 'section.urls'、namespace = 'section')、kwargs = {'city': 'XX'})、 '?XX/section/ – raphv

+0

私はあなたが誤解していると思っています - 私は正規表現を保つ必要がありますが、パラメータを渡さないでください –

答えて

0

url(r'^((?P<city>[a-zA-Z]{2})/)?section/', include('section.urls', namespace='section')), 

市はURLに送信されない場合は、あなたのビューはcity=None

1

(また、私はおそらくジャンゴサイト、さらにラインの下のより強固な何かを計画します)。

?で正規表現にオプションとしてのparamを設定
r'^[a-zA-Z]{2}/section' 
+0

素晴らしい解決策でしたが、私はまだ私が必要と知っていないという質問に答えました。時にはそうではない) –

関連する問題