@daho005

Как сделать бесконечное углубление ссылок в Django?

У знакомой есть сайт, на котором в админке можно создать каталог, а в нем еще каталог и в нем еще и так далее.
Я придумал такую штуку: модель, с привязкой к самой себе. Можно добавить запись, потом создать еще одну запись и привязать её к первой.
Допустим я захотел добавить запись Животные, потом запись Млекопитающие и привязать ее к первой, после этого добавить запись Семейство Кошачьих и привязать ее к Млекопитающим, и последнюю запись - Тигр, которая будет привязана к Семейству Кошачьих. И фишка в том, что таких углублений можно делать бесконечно.
Вопрос. Как мне сделать такое древо в urls.py, чтобы в адресной строке это выглядело также как и на сайте знакомой?:
http://localhost/Jivotnie/Mlekopitaushie/Semeistvo_Koshachih/Tigr/и так далее
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
Sobolev5
@Sobolev5
Python developer
Бесконечно у вас сделать точно не получится, т.к.

Максимальная длина URL в его адресной строке составляет 2048 символов


Если речь идет об иерархической структуре то вам следует обратить внимание на библиотеку mptt
https://django-mptt.readthedocs.io/en/latest/

Чтобы сделать бесконечный урл, просто опишите регулярное выражение соответствующее адресу как (.+)
url(r"^(?P<MyStrangeVariable>\d+)/$", MyStrangeCode.as_view()),

И далее полученное значение из строки адреса можно разбить при помощи split('/')

Сразу оговорюсь это не лучшее решение. Читайте про регулярные выражения.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы