Djangoでは、urls.pyから簡単なリダイレクトを直接行う方法はありますか?当然、私はDRYの原則に賛同する、うまく組織された人です。そのため、URLをハードコーディングするのではなく、URLパターンという名前に基づいてターゲットを取得したいと考えています。djangoのurls.pyから直接指定したURLパターンにリダイレクトしますか?
答えて
あなたがDjangoの1.4または1.5である場合は、あなたがこれを行うことができます:
from django.core.urlresolvers import reverse_lazy
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url=reverse_lazy('my_named_pattern'), permanent=False)),
...
あなたは上記のDjango 1.6または上にある場合は、あなたがこれを行うことができます:Djangoの1.9では
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(pattern_name='my_named_pattern', permanent=False)),
...
を、 permanent
のデフォルト値がTrueからFalseに変更されました。あなたはpermanent
キーワード引数を指定しない場合このため、この警告が表示されることがあります
RemovedInDjango19Warning:「RedirectView.permanent」のデフォルト値は、Djangoの1.9でのTrueからFalseに変更されます。明示的な値を設定すると、この警告が消えます。
あなたはあなたが作ることができるurl.py
url(r'^old_url/$', "website.views.url_redirect", name="url-redirect"),
でview.py
def url_redirect(request):
return HttpResponseRedirect("/new_url/")
でRedirectView
をサポートできない場合は、この方法では、ジャンゴの古いバージョンではサポートされていますそれは永久に使用することによってHttpResponsePermanentRedirect
これは私のために働く。上記の例では
from django.views.generic import RedirectView
urlpatterns = patterns('',
url(r'^some-page/$', RedirectView.as_view(url='/')),
...
'/'
は、インデックスページ、あなたはまた、任意のURLパターンを追加することができます にリダイレクトすることを意味します。
'RedirectView'はDjangoの古いバージョンでは' permanent = True'がデフォルトで、Djangoバージョンでは 'permanent = False'がデフォルトとして> = 1.9であることに注意してください。 – Flimm
私はホームページにすべての404エラーをリダイレクトしようとしていたし、次は素晴らしい仕事:
from django.views.generic import RedirectView
...
under urlpatterns, added:
url(r'^.*/$', RedirectView.as_view(url='/home/')),
url(r'^$', RedirectView.as_view(url='/home/')),
- 1. Djangoはurls.pyファイル内のパラメータを持つURLをリダイレクトしますか?
- 2. django urls: "DjangoはこれらのURLパターンを試しました"
- 3. 'strの' オブジェクトが私のurls.pyファイルでDjangoのURLパターン
- 4. Buildoutとzc.recipe.egg - 卵のダウンロードURLを直接指定していますか?
- 5. DjangoはURL、汎用ビューを指定しましたか?
- 6. urls.pyから別のアプリケーションビューディレクトリにリダイレクト
- 7. django- urls.pyに文字列またはインスタンスを渡しますか?
- 8. はサブフォルダにリダイレクトするだけでなく、私はサブフォルダに直接URLからリダイレクトをしています。https
- 9. djangoのurls.pyからパスを除外します
- 10. CDNドメインに直接アクセスしてCDNからプライマリWebサイトにリダイレクトしますか?
- 11. URLからAzureストレージに直接画像を保存します
- 12. DjangoのURLパターン、インスタンス?公式ドキュメントから
- 13. angular4で直接指定されたルートURLへのルーティング
- 14. Htaccess他のURLへのパスを指定したURLをリダイレクト
- 15. djangoからS3に直接アップロード
- 16. httpwebresponseからURLにリダイレクトします。ロケーションヘッダー
- 17. DjangoのURLの試合はurls.pyでルールに一致しない
- 18. ユーザーアイコンをクリックすると、指定したURLでブラウザを直接開くことはできますか?
- 19. Djangoが直接divにジャンプします
- 20. URLから直接アクセスする方法
- 21. 異なるアクティビティにログインした後のFirebase直接指定ユーザ
- 22. なぜPython/Djangoは別のURLにリダイレクトしていますか?
- 23. DjangoのURLパターン
- 24. IIS 7.5特定のパターンのURLリダイレクト
- 25. Javascript Guacamole Clientからguacdに直接接続しますか?
- 26. urls.pyにdjangoでURLパラメータを取得する方法はありますか?
- 27. ピクチャから直接URLを取得
- 28. パターンを指定したにもかかわらず、パターンのマッチは非網羅的です
- 29. Django urls.pyが見つかりません
- 30. ブラウザからコントローラメソッドにアクセスすると、指定されたURLにリダイレクトされますか?
ただ、ノート、RedirectViewがデフォルトとして真=永久持っていることを覚えておいてください。 –
https://docs.djangoproject.com/jp/1.7/ref/class-based-views/base/#redirectview – Wtower
すべてをリダイレクトできます。同様に、 '' '(r '^。*/$'、RedirectView.as_view(url = 'http://newurl.com'))、' '' – radtek