Django 2.0 chemin erreur ?: (2_0.W001) a un itinéraire qui contient '(?P<", commence par un '^', ou se termine par un '$'

Je suis nouveau sur Django et suis en train de créer l'extrémité arrière de code pour une application de musique sur mon site.

J'ai créé la vue correcte dans mon views.py fichier (dans le bon répertoire) comme indiqué ci-dessous:

def detail(request, album_id):
    return HttpResponse("<h1>Details for Album ID:" + str(album_id) + "</h1>")

cependant, lors de la création de l'url ou le chemin de ce (ci-dessous)

#/music/71/(pk)
path(r'^(?P<album_id>[0-9])/$', views.detail, name='detail'),

Je suis en train de vivre un avertissement sur mon terminal en déclarant:

?: (2_0.W001) Your URL pattern '^(?P<album_id>[0-9])/$' [name='detail'] has a route that contains '(?P<', begins with a '^', or ends with a '$'. This was likely an oversight when migrating to django.urls.path().

et chaque fois que le /music/ (pour lequel la trajectoire de travaux) est suivie par un nombre, comme /music/1 (qui est ce que je veux être en mesure de le faire) la page ne peut pas être trouvé et le terminal donne l'avertissement ci-dessus.

Il peut être une simple erreur et juste pour moi d'être stupide, mais je suis nouveau sur Django et python regex états, de sorte que toute aide est très appréciée.

  • Je pense que vous voulez utiliser les re_path, ou de ne pas utiliser des regex dans le modèle d'url (path('music/<int:album_id>/', ....).
  • On mélange les nouvelles et anciennes url de la syntaxe. Changer l'url de path('<int:album_id>/', views.detail, name='detail') ou utiliser les re_path
  • Ce serait tellement bien si django serait de dire ce qu'il faut utiliser à la place.
InformationsquelleAutor Joe Tynan | 2017-12-05