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 для посещения заданного пути с заданными параметрами.

Вернуться на верх