0

Django アプリケーションで URL をスラッグ化したいと考えています。私は多くのドキュメントを読みましたが、どうすればより良いものになるかまだわかりません。2 つの質問があります。

  1. 2 つの異なる URL に対して同じビューを呼び出す方法は? www.mysite.com と www.mysite.com/index.html の両方のホーム ビューを呼び出したい

    (r'^$', 'myapp.main.views.home')
    (r'([-\w]+)$', 'myapp.main.views.home')
    

    上記のコードは良さそうに見えますが、ホーム ビューでは 1 つのパラメーターが想定されているのに 2 つが指定されているため、もちろんエラーが発生します。どうすればこれを解決できますか?

  2. 私は非常に多くのアプリを持っており、それらはすべて独自の urls.py ファイルを持っています。urls ファイルをルート urls.py に含めるように処理しました。

     (r'^warehouse/', include('myapp.warehouse.urls')),
    

そのように、URL は www.mysite.com/warehouse/blabla/ のように見えますが、www.mysite.com/warehouse_blabla.html のようにスラッグ化したいのですが、スラッグ化は難しくありませんが、どうすればそのような URL を解決して倉庫アプリで blabla ビュー?

ありがとう

4

1 に答える 1

1

Regarding the first problem, you would be better off using a redirect for the index.html URL (better for SEO etc.)

from django.views.generic.simple import redirect_to

urlpatterns = patterns('',
    url(r'^$', 'myapp.main.views.home')
    url(r'^index.html$', redirect_to, {'url': '/'}),
)

Regarding the second issue, your urls.py file is just a set of regular expressions, so you have control over the URL scheme you want to use:

urlpatterns = patterns('',
    url(r'^warehouse_(?P<slug>[_w]+).html$', 'warehouse.views.warehouse_detail'),
)

That said, I think you would be better sticking to the usual convention of slashes

于 2012-09-21T14:04:45.217 に答える