Не удалось разобрать остаток: ',' из ''twitter:source_delete''.

Я хочу добавить td к моей таблице с помощью ajax, но у меня есть небольшая проблема, как добавить source.twitter_id в url?? ошибка, которую я получил "Could not parse the remainder: ',' from ''twitter:source_delete','' "

.

Я пробовал также {% url 'twitter:source_delete', source.twitter_id %} это тоже ошибка.

javascript

function appendToUsrTable(source) {
console.log(source.twitter_id)
    $("#sourceTable > tbody:last-child").append(`
         <tr class="record" id="source-${source.twitter_id}">
          <td>{{forloop.counter}}</td>
          <td>${source.source_acct}</td>
          <td><p data-placement="top" data-toggle="tooltip" title="Delete"><a href="{% url 
            'twitter:source_delete' ${source.twitter_id} %}" class="source_delete btn btn-
             danger btn-xs" 
             data-title="Delete" data-toggle="modal" data-target="#delete"><span class="las la-trash-alt 
 del_s"></span></a></p></td>
       </tr>
`);

}

views.py

class CreateCrudUser(View):
def  get(self, request):
    
    name_source = request.GET.get('source_acct', None)
    print(name_source)
    obj = Source.objects.create(
        source_acct = name_source
        )

    source = {'twitter_id':obj.twitter_id,'source_acct':obj.source_acct}

    data = {
    'source': source
    }
    return JsonResponse(data)
 

эта проблема возникает из-за пустоты (нулевого значения) в source.twitter_id. поэтому лучше проверить, является ли source.twitter_id null или нет

Вы можете попробовать определить переменную url вне литерала шаблона java script следующим образом :

function appendToUsrTable(source) {
    const url = "{% url 'twitter:source_delete' source.twitter_id %}"
    console.log(source.twitter_id)
    $("#sourceTable > tbody:last-child").append(`
         <tr class="record" id="source-${source.twitter_id}">
           <td>{{forloop.counter}}</td>
           <td>${source.source_acct}</td>
           <td><p data-placement="top" data-toggle="tooltip" title="Delete"><a href=${url} class="source_delete btn btn-danger btn-xs" data-title="Delete" data-toggle="modal" data-target="#delete"><span class="las la-trash-alt del_s"></span></a></p></td>
         </tr>
`);

NB : будьте осторожны с сочетанием переменной шаблона Django с литералом шаблона Java Script.

Я нашел решение. Спасибо!

let sour = source.twitter_id;
var url = "{% url 'twitter:source_delete' 123 %}".replace(/123/,sour.toString());
Вернуться на верх