Django - Текущий url не совпадает ни с одним из этих
У меня Django 4.0.4. Я попробовал следующий url : http://127.0.0.1:8000/cp2/sbwsec/1076/o2m/section/wseclmts/47/p/element/sbwblmnt/1077/. но он выдает ошибку Page not found (404)
Текущий путь, cp2/sbwsec/1076/o2m/section/wseclmts/47/p/element/sbwblmnt/1077/, не соответствует ни одному из них.
Используя URLconf, определенный в myproject.urls, Django попробовал эти шаблоны URL, в таком порядке:
У меня 1370 деталей - где правильная деталь находится в строке 268, как видно из страницы отладочного исключения
cp2/ (?P<parent_element_name>\w+)/(?P<parent_id>\d+)/p/(?P<parent_field>\w+)/sbwblmnt/(?P<item_id>\d+)/$ [name='sbwblmnt_epec']
Спасибо за помощь
Похоже, что вы написали относительный URL в шаблоне, поэтому что-то вроде:
<a href="wseclmts/47/p/element/sbwblmnt/1077/">link</a>
Это добавит путь wseclmts/47/p/element/sbwblmnt/1077/ к уже существующему пути, так что если вы просматриваете это, когда браузер посещает путь /cp2/sbwsec/1076/o2m/section/, он посетит путь /cp2/sbwsec/1076/o2m/section/wseclmts/47/p/element/sbwblmnt/1077/. Это приводит к длинным URL (которые могут даже не укладываться в ограничение 2048 символов.
Вы должны работать с абсолютным путем, например:
<a href="/cp2/wseclmts/47/p/element/sbwblmnt/1077/">link</a>
so с ведущим слэшем. Это позволит браузеру посетить путь /cp2/wseclmts/47/p/element/sbwblmnt/1077/. Вы можете работать с тегом шаблона {% url … %} [Django-doc] для построения пути, так:
<a href="{% url 'sbwblmnt_epec' 'wseclmts' 47 'element' 1077 %}">link</a>
Где первый параметр 'sbwblmnt_epec' - имя представления, а следующие параметры - значения для параметров. Это будет искать шаблоны и строить URL для посещения заданного пути с заданными параметрами.