Функция Django HttpResponseRedirect()
flag = 0
folder_id = 0
if FolderEntries.objects.filter(entry = entry_id).exists():
print("=======================yes in folder")
flag = 1
folder_object = FolderEntries.objects.get(entry = entry_id)
folder_entries_object = model_to_dict(folder_object)
print("-------------------------", folder_entries_object)
folder_id = folder_entries_object['folder']
else:
flag = 0
if flag == 1:
returnHttpResponseRedirect('folder/'+str(folder_id)+'/')
else:
if request.session.get('HTTP_REFERER', None):
HTTP_REFERER = request.session.get('HTTP_REFERER')
del request.session['HTTP_REFERER']
return HttpResponseRedirect(HTTP_REFERER)
return HttpResponseRedirect('editentry/'+str(entry_id))
В данном случае, если флаг = 1, это перенаправляет меня на 2 адреса, а именно:- http://127.0.0.1:8000/admin/form-entries/edit-entry/folder/174/
url "folder/174" - это url, который мне нужен. Но я получаю нежелательный url "admin/form-entries/edit-entry/"
.
Что я делаю не так, пожалуйста, подскажите мне. Я начинающий разработчик django
Спасибо и пожелания Abhishek
Просто добавьте прямую косую черту в HttpResponseRedirect
return HttpResponseRedirect('/folder/'+str(folder_id)+'/')
url должен начинаться со слэша, иначе он будет рассматриваться как относительный url.
В дополнение к ответу @ilyasbbu, если вы используете python 3.6+, рассмотрите возможность использования f-string как более элегантный способ работы со строками.
return HttpResponseRedirect(f'/folder/{folder_id}/')