Django window.location не заменяет строку
У меня есть функция javascript в представлении django, которая должна перенаправить пользователя на другой URL, содержащий параметр запроса. Когда я распечатываю URL перед присвоением его window.location, он соответствует шаблону url, как и ожидалось. Однако когда я присваиваю URL в window.location, он, похоже, добавляет его к уже существующему, а не заменяет его, и таким образом не может найти совпадающий шаблон url.
Функция Javascript:
function downloadEvidence() {
var product_review_ids = getProductReviewIDs();
if (product_review_ids === '') {
window.alert("Please select at least one deployment.")
return;
}
var url = window.location.href + "download_evidence?productReviewIDs=" + product_review_ids
console.log(url); //prints: http://127.0.0.1:8000/access-review-owner/configure/new%20test%20product/download_evidence?productReviewIDs=14
window.location = url;
}
Шаблон url, которому он должен соответствовать:
urlpatterns = [
path('access-review-owner/configure/<str:product_name>/download_evidence/',views.download_evidence_view, name='download_evidence_view'),
]
Представление, на которое он должен перейти:
@require_http_methods(['GET'])
def download_evidence_view(request, product_name):
product_id = request.GET.get('productReviewIDs', None)
print(product_id)
'''
NOTE: Package up evidence here
'''
return HttpResponseRedirect(os.environ['BASE_URL']+f'access-review-owner/configure/{product_name}/download_evidence/')
Урл, который он пытается найти, когда я присваиваю правильный урл в window.location:
GET http://127.0.0.1:8000/access-review-owner/configure/new%20test%20product/download_evidence/access-review-owner/configure/new%20test%20product/download_evidence/
Попробуйте добавить этот код
function downloadEvidence() {
var product_review_ids = getProductReviewIDs();
var product_name = //try to get you product name
if (product_review_ids === '') {
window.alert("Please select at least one deployment.")
return;
}
var url = `${window.location.origin}/${product_name}/download_evidence?productReviewIDs=${product_review_ids}`
console.log(url); //prints: http://127.0.0.1:8000/access-review-owner/configure/new%20test%20product/download_evidence?productReviewIDs=14
window.location = url;
}