0

djangoでdelete()関数が機能しない、

def delete_hardware (request):
    notice = ''
    inventory = get_object_or_404(inventory, id = request.GET.get('id'))
    if inventory:
        inventory.delete()
        notice = "Hardware was deleted"
    return render_to_response('form.html', {'notice': notice},
                              context_instance=RequestContext(request))

...そして、これらはform.htmlの私のコードです

<td bgcolor='#f1f1f1'><a onclick="javascript:confirmDelete('/delete/?id={{id}}')">
<img src='{{ MEDIA_URL }}/images/delete.png' width=25 height=25 />
            </a></td>
4

2 に答える 2

2

ビュー.py

def delete_hardware (request, id):
    inventory = get_object_or_404(inventory, pk=id).delete()
    messages.success(request, "Hardware was deleted!")
    return HttpResponseRedirect(reverse('app_name:url_name'))

urls.py

url(r'^delete/(?P<id>\d+)/$', 'delete_hardware', 
    name='delete_hardware'),

質問に完全なコードを入れていないため、完全な詳細コードを提供できません。理由はわかりませんが、あなた次第です。これは単なるガイドであり、あなたの心をすっきりさせてくれることを願っています。フォームが method=GET を送信した場合にのみ、データを取得できます

<a href="/delete/{{value.id}}" class="delete-hardware">Delete</a>

<script>
$('.delete-hardware').click(function(){
    var url = $(this).attr('href');
    document.location.href = url;
});
</script>
于 2013-02-06T07:51:10.967 に答える
0

そのはずrequest.GET['id']

ちょうど試して

def delete_hardware (request):
 notice = " "
 id = request.GET['id']
 try:
   inv = inventory.objects.get(id = id)
   inv.delete()
   notice = "Hardware was deleted"
 except inventory.DoesNotExist:
    raise Http404
 return render_to_response('form.html', {'notice': notice},
                              context_instance=RequestContext(request))
于 2013-02-06T07:16:46.657 に答える