Quiero agregar td a mi tabla usando ajax pero tengo un pequeño problema, ¿cómo agregar source.twitter_id en url? el error que obtuve es "No se pudo analizar el resto: ',' de 'twitter: source_delete','"
Intenté también {% url 'twitter:source_delete', source.twitter_id %} también error.
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> `);}
vistas.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)este problema surge porque está vacío (valor nulo) de source.twitter_id , por lo que es mejor verificar si source.twitter_id es nulo o no
Puede intentar definir la variable de URL fuera del literal de la plantilla de script de Java de esta manera:
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: tenga cuidado al combinar la variable de plantilla de Django con el literal de plantilla de Java Script .
Encontré una solución. ¡gracias!
let sour = source.twitter_id; var url = "{% url 'twitter:source_delete' 123 %}".replace(/123/,sour.toString());