0

だから私はこのように見えるメインのurls.pyを持っています:

    urlpatterns = patterns('',
(r'^users/(?P<username>.*)/', include('app.urls')), 
url(r'^users/(?P<username>.*)$',direct_to_template,{'template':'accounts/profile.html'}, name='profile'),)

およびapp.urls.py

urlpatterns = patterns('',url(r'^app/create/$', create_city ,name='create_city'),)

私の問題は、localhost:8000 / users / michael / app / create /の場合、ビューが呼び出されないことです。運が悪かったのでURLの順序を変更しようとしたので、私の問題は正規表現にあると思いますが、何を変更すればよいかわかりません。

4

1 に答える 1

1

名前付きグループ(?P<username>.*)は、0回以上任意の文字と一致します。スラッシュを含むユーザー名で。

URLパターンでは、を使用するのがより一般的(?P<username>[-\w]+)です。これは、小文字のaz、大文字のAZ、数字の0〜9のハイフンおよびアンダースコアのセットから少なくとも1文字に一致します。

また、ビューのパターンに末尾のスラッシュを追加することをお勧めしますprofile

すべてをまとめると、次のことを出発点として使用することをお勧めしますurls.py

urlpatterns = patterns('',
   url(r'^users/(?P<username>[-\w]+)/$',direct_to_template, {'template':'accounts/profile.html'}, name='profile'), 
   (r'^users/(?P<username>[-\w]+)/', include('app.urls')), 
)
于 2012-10-11T00:20:20.957 に答える