2017-04-04 6 views
0

私はDjangoを初めて使い、プロファイルページがあるプロジェクトを開発しています。Urlpatterns(django)のURLから空白を削除します

問題は、プライマリキーに空白が含まれているが、URLに「%20%」のように表示したくないということです。たとえば、次のように

website.com/Exampleメーカー - >私はこれを試してみた

website.com/examplestudios:

url ((r'^(?P<studio_name>[\w ]+)/$').replace(" ", ""), views.StudioView, name = 'dev_profile') 

しかし、うまくいきませんでした(それが変わるようにそれはそうとURLを読む前に生の部分を文字列に変換します)、 're'と同じことが起こります。私は解決策を探してきましたが、私はそれらを見つけることができません(そして、私を確信させることはありません)。

これに対する解決策は何ですか?または何をお勧めしますか?

+2

URLには、Djangoがキャッチするpatterensを定義します。 r '^ test/$'これは、誰かがyourdomain.com/testを取得しようとすると、Djangoがそれをキャッチしてテンプレートをレンダリングするビューを呼び出すことを意味します。あなたはURL生成に関する問題を解決する必要があります。テンプレートにあります。したがってURL: url((r '^(?P [\ w] +)/ $')、views.StudioView、name = 'dev_profile')。主キーをテンプレートのスペースなしで単語に変換する必要があります。 1つの方法は、すべてのレコードにスラグを使用することです。 – giaco

+0

また、自動生成された編集可能なフィールドであるStudioモデルにスラッグフィールドを追加します(例:Studios-> examplestudiosという名前から名前を生成できます)。 – giaco

+0

さて、私はスラッグを設定することに成功しましたが、別の問題が発生しました。テンプレートのstudio_nameを次のように中間テーブルを介して呼び出していました:user.admin.studio_name(dbスキームはUser: < - スタジオ)。今、私はスラッグを呼び出すことができるようにスタジオモデルを格納する変数を宣言する方法を知らない。 – AtenrevCode

答えて

0

URLには、Djangoがキャッチするpatterensを定義します。 r '^ test/$'これは、誰かがyourdomain.com/testを取得しようとすると、Djangoがそれをキャッチしてテンプレートをレンダリングするビューを呼び出すことを意味します。あなたはURL生成に関する問題を解決する必要があります。テンプレートで。したがって、URL:
url ((r'^(?P<studio_name>[\w ]+)/$'), views.StudioView, name = 'dev_profile')
テンプレートに空白を含まない主キーを単語に変換する必要があります。 1つの方法は、すべてのレコードにスラグを使用することです。 また、自動生成された編集可能なフィールドであるStudioモデルにスラッグフィールドを追加します(例:Studios-> examplestudiosという名前から名前を生成できます)。

関連する問題