Django我无法使用ajax为每个字段添加模态按钮

时间:2019-05-27 12:02:22

标签: ajax django django-templates django-urls

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

我收到一个错误 “找不到带有关键字参数'{'pk':'+ field.id +'}'的'editare-agenda'。相反,尝试了1种模式:['dashboard / editare \ -agenda /(?P [0- 9] +)$']“

如果我输入一个数字,则+ field.id +正在运行。如果我测试alert(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);
}

});

2 个答案:

答案 0 :(得分:1)

您可以更改您的网址条目

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
    .....

答案 1 :(得分:0)

content += '<td><a href="{% url "dashboard:editare-agenda" pk=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>';

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