django создает абсолютный URL-адрес внутри команды управления

#python #django #django-urls #django-commands

#python #django #django-urls #django-команды

Вопрос:

Мы используем обратное в django, чтобы получить URL, например. —

 my_url = reverse("name_of_url", kwargs={"param":param, "param2":param2})
  

В приведенном выше случае my_url будет иметь вид /path1/path2/..

Если я хочу сгенерировать что- www.mysite.com/path1/path2/ нам нужно сделать следующее —

 my_url = request.build_absolute_uri(reverse("name_of_url", kwargs={"param":param, "param2":param2}))
  

Это даст URL-адрес в желаемом формате. Но проблема в том, что я генерирую URL-адрес внутри пользовательской команды управления и не имею доступа к request переменной. Есть ли какой-либо способ, я могу сгенерировать URL-адрес в формате — www.mysite.com/path1/path2/ .

Ответ №1:

Нет, насколько я знаю, нет способа сделать это из команды управления. Как вы сами поняли, вы используете часть request информации для создания полного URL-адреса, и когда вы запускаете команду управления из консоли, запроса нет.

Что я сделал в своих проектах, так это настроил переменную, вызываемую BASE_URL в settings вашем базовом домене, и использовал ее для создания вашего URL.

Вы также можете проверить структуру сайтов:https://docs.djangoproject.com/en/dev/ref/contrib/sites /