Django url'de soru işareti ve HTML'de if i % 2 == 0 kullanımı

Merhaba. Web sitemin içinde kategoriler diye bir menü var. O menüden herhangi birine girebilmek için aşağıdaki url’i kullanıyorum:

urls.py

path('categories?id=<int:id>', views.DetailView, name='categories'),

Sorunsuz bir şekilde çalışıyor ancak site adresinde soru işareti yerine %3F diye bir şey çıkıyor.

http://127.0.0.1:8000/categories%3Fid=3

Normal şartlarda URL kısmında soru işaretinden sonrası url’e tıklanmadığı sürece görünmüyor. Ben de öyle olmasını istiyorum ama ne kadar araştırsam da nasıl soru işareti ekleyeceğimi bulamadım. Normal HTML içinden soru işareti eklemeye çalıştım, bu sefer de sayfa bulunamadı gibi hatalar verdi.

HTML içinde kullandığım kod:

{% for i in Products %}
    <a href="{% url 'web:categories' i.id%}">{{ i }}</a>
{% endfor %}

Aynı şekilde HTML sayfamın oluşması için HTML’in içinde başlıkta belirttiğim i’nin kalanı 0’a eşitse ifadesini kullanmak istiyorum ama dokümanlarda bu kullanımı göremedim. Denediğimde de hata verdi zaten. Bunu nasıl yapabileceğimi biliyor musunuz?

Soru işaretinden önce kaçış satırı kullanabilirsin.

path('categories\?id=<int:id>', views.DetailView, name='categories'),

Dener misiniz onu yapmayı?

Kod sende, senin denemen lazim :slight_smile: (Ama “calismiyor” denmek istendigi tahmin edilebiliyor)

Ben bunu anlamadim. Nerede gorunmuyor? Browser’da ise bug report acilmasini tavsiye ederim.

Bu normal. ? URL icinde kullanildiginda %3F olarak geciyor, cunku ? path ile query’i ayirmak icin kullaniliyor.

Django bilmiyorum ama query string kullanilacaksa path fonksiyonuna yazilmiyor gibi gozukuyor.