この質問が少し余分に見える場合は申し訳ありませんが、本当に私を悩ますものです。Django url warning urls.W002
次のURLで定義されたDjangoで書かれた一連のAPIがあります。
/api/v1/account
/api/v1/account/login
/api/v1/account/logout
私の目的のためにこの作品を、私は(私はいくつかのAPIで定義されているような警告を持つ保つ:
# urls.py
import ...
urlpatterns = [
url(r"^api/v1/account", include(profile.urls))
]
と
# profile/urls.py
import ...
urlpatterns = [
url(r"^$", AccountAPI.as_view()),
url(r"^/login$", LoginAPI.as_view()),
url(r"^/logout$", LogoutAPI.as_view())
]
この構成は、のみ URLを許可する必要がありますこのルールと警告リストは大きくなります):
?: (urls.W002) Your URL pattern '^/login$' has a regex beginning with a '/'. Remove this slash as it is unnecessary.
?: (urls.W002) Your URL pattern '^/logout$' has a regex beginning with a '/'. Remove this slash as it is unnecessary.
スラッシュを削除すると、サーバーは定義したURLを検証しません。そのために私はのようなURLの最初のレベルにスラッシュたする必要があります。
# urls.py
import ...
urlpatterns = [
url(r"^api/v1/account/", include(profile.urls))
]
をそして、これはスラッシュ、私はしたくない何かを終了するには、アカウントの呼び出しを行います。
私は自分の目的を果たすために見つけた最もエレガントな方法でURLを定義していると感じています。私はこの悲しい警告をログに残しています。
何か間違っていますか?私がそれらのために選んだ構造を妥協することなく、URLを定義する正しい方法がありますか?または、この警告をオフにする方法がありますか?
私はそれを定義しないためです。個人的に、私は好きではない。私はURLのディスパッチャを読んで、ルートのURLには有効であるように見えますが、ルートに含まれているものはそうではありません。 – joaonrb