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;
}
Вернуться на верх