[解決済み】Djangoのオプションのurlパラメータ
2022-04-12 03:45:34
質問
私はこのようなDjangoのURLを持っています。
url(
r'^project_config/(?P<product>\w+)/(?P<project_id>\w+)/$',
'tool.views.ProjectConfig',
name='project_config'
),
views.py。
def ProjectConfig(request, product, project_id=None, template_name='project.html'):
...
# do stuff
問題は
project_id
パラメータはオプションにする必要があります。
私は
/project_config/
と
/project_config/12345abdce/
を同様に有効な URL パターンとすることで
もし
project_id
が渡されます。
では
使えるんです。
今のところ、このURLで
project_id
パラメータを使用します。
解決方法は?
いくつかのアプローチがあります。
1つは、正規表現で捕捉しないグループを使用することです。
(?:/(?P<title>[a-zA-Z]+)/)?
Regex Django の URL トークンをオプションにする
もう一つの、より簡単な方法は、あなたのニーズにマッチした複数のルールを持ち、すべて同じビューを指すようにすることです。
urlpatterns = patterns('',
url(r'^project_config/$', views.foo),
url(r'^project_config/(?P<product>\w+)/$', views.foo),
url(r'^project_config/(?P<product>\w+)/(?P<project_id>\w+)/$', views.foo),
)
ビューでは、オプションのURLパラメータにデフォルトを設定する必要があることに留意してください。
def foo(request, optional_parameter=''):
# Your code goes here
関連
-
Python Decorator 練習問題
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] Djangoのバージョンを確認する方法
-
[解決済み] request.GETでURLパラメータを取得する
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
python call matlab メソッドの詳細
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] データ型が理解できない
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み] request.GETでURLパラメータを取得する