2016-06-27 5 views
1

含まれているURLが機能しない理由を理解できません。プロジェクトは1私のアプリがあります。だから、MyProjectと/個人用サイト/ urls.py私が持っているでは:ないページ(私はhttp://localhost:8000/lt/sub/subscribe/に行くしようとした場合Djangoに含まれるURLは機能しません

from django.conf.urls import patterns, url 

from .views import subscribe 

urlpatterns = patterns(
    url(r'^subscribe/', subscribe), 
) 

それは404ページが表示されます。

urlpatterns = i18n_patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    ...... 
    url(r'^sub/', include('subscription.urls')), 
    url(r'^', include('cms.urls')), 
) 

その後でmyproject /サブスクリプション/ urls.pyに見つけた)。何が問題なのでしょうか?

EDITED:プロジェクトツリー:

myproject/ 
    manage.py 
    media/ 
    static/ 
    subscription/ 
     templates/ 
     __init__.py 
     admin.py 
     forms.py 
     models.py 
     urls.py 
     views.py 
    mysite/ 
     locale/ 
     static/ 
     templates/ 
     __init__.py 
     settings.py 
     urls.py 
     wsgi.py 
+0

どうすればいいですか? – Sayse

+0

http:// localhost:8000/sub/subscribe /を試してみると単なる言語ですが、それは '/ lt/'。これはdjango-cmsのものです。 –

+0

文字列の代わりに 'include'でpythonパッケージを使ってみましたか?この 'url(r '^ sub /'、include(subscription.urls))'のように? –

答えて

1

urlpatterns = patterns(
    url(r'^subscribe/', subscribe), 
) 

patterns()は、最初の引数としてビューの接頭辞を受け入れるあなたがurl()インスタンスを渡すと、これはURLパターンとして使用されることはありません。他のURLパターンがあればエラーになりますが、この特定のケースではpatterns()は単に空のリストを返します。

patterns()は廃止されているので、新しいスタイルのURLの設定に切り替えて、リストを使用した方がよい:

urlpatterns = [ 
    url(r'^subscribe/', subscribe), 
] 

そうでない場合は、あなたが最初の引数として接頭辞を渡す必要があるだろう。接頭辞は実際には使用しないため(文字列としてのインポート位置ではなく、ビュー関数を渡します)、これは一般に空の文字列''になります。

1

if i try localhost:8000/sub/subscribe, it appends url with /lt/

ザッツあなたのURLパターンは、あなたが

r'^subscribe/' # Shouldn't have the slash or should be optional 

を提供していない最後のスラッシュを、必要とするため、通常、これは問題ではありませんdjangos APPEND_SLASHはあなたを助けてくれるので(CommonMiddlewareを使用している場合)、django-cmsはキャッチオールリダイレクトをアプリケーションに適用してリダイレクトしているようですロケールにあなたはpatterns()関数を呼び出し中にエラーが発生している

+0

私は 'url(r '^ subscribe'、subscribe)、' slash from there 'を削除してもまだ動作しません。 –

+0

@Mažas - 「動作しません」と説明すると、別のエラーが発生していると思われます。質問を完全なスタックトレースで更新する必要があります。 – Sayse

+0

エラーは同じ - 404ページが見つかりません。 –

関連する問題