首页 > 解决方案 > Django我不能在模式中为每个带有ajax的字段添加按钮

问题描述

我试图在我的桌子上放一个按钮,但我无法成功

我收到一个错误“Reverse for 'editare-agenda' with keyword arguments '{'pk': '+field.id+'}' not found. 1 pattern(s) tried: ['dashboard/editare\-agenda/(? P[0-9]+)$']"

如果我输入一个数字而不是 +field.id+ 正在工作。如果我测试警报(field.id),我会收到 id。写 {% url 'dasboard:editare-agenda' pk=field.id %} 有什么问题,但我找不到解决方案。

这是我的 urls.py:

path('editare-agenda/<"int":pk>', editare_agenda, name="editare-agenda"),

** "int" = int -> 我不能在 url 路径中写入 int,因为他消失了

 $.ajax({
    data: values,
    method:"POST",
    url: destinatie,
    contenttType: 'application/json',
    success: function(data){
        var content ="";
        $.each(data.agenda, function(i, field){
            content += '<tr class="text-center">';
            content += '<td>'+field.denumire_unitate+'</td>';
            content += '<td>'+field.sectia+'</td>';
            content += '<td>'+field.telefon+'</td>';
            content += '<td>'+field.pers_contact+'</td>';
            content += '<td>'+field.adresa+'</td>';
            content += '<td><a href="{% url "dashboard:editare-agenda" pk='+field.id+'%}"><button type="button" class="btn btn-sm" style="border-radius: 5px;margin: 1px;"><i class="fas fa-edit fa-lg" style="color: blue"></i></button></a></td>';
            content += '</tr>';
    });
    $('#tabela_agenda').html(content);
}

});

标签: ajaxdjangodjango-templatesdjango-urls

解决方案


您可以更改您的网址条目

path('editare-agenda/', editare_agenda, name="editare-agenda"),

并在模板中

content += '<td><a href="{% url "dashboard:editare-agenda" %}?id='+field.id+'"><button type="button" tclass="btn btn-sm" style="border-radius: 5px;margin: 1px;"><i class="fas fa-edit fa-lg" style="color: blue"></i></button></a></td>';

并且在视野中

def editare_agenda(request):
    field_id = request.GET.get('id', None)
     # Now you can use field id as pk
    .....

推荐阅读