#SOLVED Django: не удалось проанализировать остаток - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь передать ответ от JsonResponse в качестве параметра указанной c функции в представлениях. Но вместо этого появилась следующая ошибка:

django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '${response.id_ajuan}' from '${response.id_ajuan}'

Вот мой код

url.py

url(r'^course-eksternal/review/(?P<id>\d+)/update$', course_eksternal.update_ajuan, name='update-ajuan')

просмотров. py

# Function that pass the JsonResponse
def get_update_ajuan(request):
    ajuan = Pengajuan.objects.get(pk=request.POST.get('ajuan_id'))
    res = {
        'id_ajuan': ajuan.id,
        ...
    }
    status_code = 200
    return JsonResponse(res, status=status_code)

файл. html

# Get the JsonResponse
success : function(response) {
    $('.modal-body').empty().append(`
        <div class="modal-body">
            <form action="{% url 'app:update-ajuan' id=${response.id_ajuan} %}" method="POST"> # Error occurs here
                ...
`);

Заранее благодарим за помощь!

1 Ответ

0 голосов
/ 06 мая 2020

Ваша функция успеха - это javascript, которая выполняется во внешнем интерфейсе. Django не запускает ваш интерфейс, и здесь не происходит обработка шаблонов django, поэтому вы не можете использовать какие-либо теги шаблонов django.

Что вам нужно сделать, так это выяснить, какой URL-адрес находится в вашем представлении get_update_ajuan, а затем передать весь URL-адрес обратно.

from django.urls import reverse

def get_update_ajuan(request):
    ajuan = Pengajuan.objects.get(pk=request.POST.get('ajuan_id'))
    res = {
        'id_ajuan': ajuan.id,
        'action_url': reverse("app:update-ajuan", kwargs={"id": ajuan.id},
        ...
    }
    status_code = 200
    return JsonResponse(res, status=status_code)

, а затем использовать это значение:

success : function(response) {
    $('.modal-body').empty().append(`
        <div class="modal-body">
            <form action="${response.action_url}" method="POST"> # Error occurs here
                ...
`);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...