NoReverseMatch
Hata Django Yüklü uygulamanın URL'lerin herhangi sağladığınız url için eşleşen bir URL kalıbının bulamadığını söylüyor.
NoReverseMatch istisnası, django.core.urlresolvers tarafından sağlanan parametrelere göre URLconf'unuzdaki eşleşen bir URL tanımlanamadığında ortaya çıkar.
Hata ayıklamaya başlamak için, size verilen hata mesajını keserek başlamanız gerekir.
/ My_url / konumunda NoReverseMatch
Bu, şu anda işlenmekte olan url, uygulamanızın şu anda erişmeye çalıştığı url, ancak eşleştirilemeyen bir url içeriyor
'My_url_name' için tersi
Bu, bulamadığı url'nin adıdır
'()' bağımsız değişkenleriyle ve
Bunlar, URL'ye sağladığı anahtar kelime olmayan argümanlardır.
anahtar kelime bağımsız değişkenleri '{}' bulunamadı.
Bunlar, url'ye sağladığı anahtar kelime argümanlarıdır
n desen (ler) denendi: []
Bunlar, eşleştirmeye çalıştığı urls.py dosyalarınızda bulabildiği kalıplardır.
Kaynağınızdaki şu anda işlenmekte olan url ile ilgili kodu (url, görünüm ve ilgili tüm şablonlar) bularak başlayın. Çoğu durumda bu, şu anda geliştirmekte olduğunuz kodun parçası olacaktır.
Bunu yaptıktan sonra, django'nun sizin için bir url oluşturmaya çalışan kod satırına ulaşana kadar izleyeceği sırayla kodu okuyun my_url_name
. Yine, bu muhtemelen yakın zamanda değiştirdiğiniz bir yerdedir.
Artık hatanın nerede oluştuğunu keşfettiğinize göre, sorunu çözmek için hata mesajının diğer bölümlerini kullanın.
Url adı
- Herhangi bir yazım hatası var mı?
- Verilen ada erişmeye çalıştığınız url'yi sağladınız mı?
- Uygulamanın içinde app_name ayarladıysanız
urls.py
(ör. app_name = 'my_app'
) Veya uygulamayı bir ad alanına dahil ettiyseniz (örneğin include('myapp.urls', namespace='myapp')
, tersine çevirirken ad alanını eklemeniz gerekir, ör. {% url 'myapp:my_url_name' %}
Veya reverse('myapp:my_url_name')
.
Bağımsız Değişkenler ve Anahtar Kelime Argümanları
Argümanlar ve anahtar kelime argümanları, belirli bir url ()
içinde bulunan ve url modelinde etrafındaki parantezlerle tanımlanabilen herhangi bir yakalama grubuyla eşleşmek için kullanılır .
Eşleştirdiğiniz url'nin ek bağımsız değişkenler gerektirdiğini varsayarsak, hata mesajına bir göz atın ve önce verilen bağımsız değişkenlerin değerinin doğru olup olmadığına bakın.
Doğru değillerse:
Değer eksik veya boş bir dize
Bu genellikle, geçirdiğiniz değerin olmasını beklediğiniz değeri içermediği anlamına gelir. Bunun için değeri atadığınız yere bir göz atın, kesme noktaları ayarlayın ve bu değerin neden doğru bir şekilde geçirilmediğini anlamanız gerekir.
Anahtar kelime bağımsız değişkeninde bir yazım hatası var
Bunu ya url kalıbında ya da oluşturduğunuz url'de düzeltin.
Doğruysa:
Normal ifadede hata ayıklayın
Düzeninizin oluşturduğunuzu düşündüğünüz url ile eşleşip eşleşmediğini hızlı bir şekilde test etmek için regexr gibi bir web sitesi kullanabilir , url kalıbını üstteki normal ifade alanına kopyalayabilir ve ardından metin alanını düşündüğünüz url'leri eklemek için kullanabilirsiniz. ile eşleşmelidir.
Yaygın hatalar:
.
Joker karakter veya diğer normal ifade karakterleriyle eşleştirme
\
Önek ile belirli karakterlerin dışına çıkmayı unutmayın
Yalnızca küçük / büyük karakterlerle eşleştirme
Ya kullanmayı deneyin a-Z
veya \w
yerine a-z
veyaA-Z
Eşleştirdiğiniz desenin denenen desenlere dahil olup olmadığını kontrol edin
Burada değilse, uygulamanızı INSTALLED_APPS
ayara dahil etmeyi unutmuş olabilirsiniz (veya içindeki uygulamaların sırasına bakmanız INSTALLED_APPS
gerekebilir)
Django Sürümü
Django 1.10'da, bir url'yi python yolu ile tersine çevirme yeteneği kaldırıldı. Bunun yerine adlandırılmış yol kullanılmalıdır.
Sorunu hala bulamıyorsanız, denediklerinizi, araştırdıklarınızı içeren yeni bir soru sormaktan çekinmeyin (Bu soruya bağlantı verebilirsiniz) ve ardından ilgili kodu sorun - eşleştirdiğiniz url, ilgili url kalıpları, hata mesajının django'nun neyi eşleştirmeye çalıştığını gösteren kısmı ve INSTALLED_APPS
varsa ayar.