Delete Record Trong Django

126 lượt xem Django
Delete Record Trong Django

Xóa Hồ Sơ

Để xóa bản ghi, chúng ta không cần mẫu mới, nhưng chúng ta cần thực hiện một số thay đổi đối với mẫu thành viên.

Tất nhiên, bạn có thể chọn cách bạn muốn thêm nút xóa, nhưng trong ví dụ này, chúng tôi sẽ thêm liên kết “xóa” cho mỗi bản ghi trong cột bảng mới.

Liên kết “xóa” cũng sẽ chứa ID của mỗi bản ghi.

Sửa Đổi Mẫu

Thêm cột “xóa” trong mẫu thành viên:

members/templates/index.html:

<h1>Members</h1>

<table border="1">
{% for x in mymembers %}
  <tr>
  <td>{{ x.id }}</td>
  <td>{{ x.firstname }}</td>
  <td>{{ x.lastname }}</td>
  <td><a href="delete/{{ x.id }}">delete</a></td>
  </tr>
{% endfor %}
</table>

<p>
<a href="add/">Add member</a>
</p>

Kết quả sẽ như thế này:

Sửa Đổi Mẫu
Sửa Đổi Mẫu

URLs

Liên kết “xóa” trong bảng HTML trỏ đến 127.0.0.1:8000/members/delete/ vì vậy chúng tôi sẽ thêm một hàm path () trong tệp members/ urls.py, trỏ url đến đúng vị trí, với ID dưới dạng tham số:

members/urls.py:

from django.urls import path
from . import views

urlpatterns = [
  path('', views.index, name='index'),
  path('add/', views.add, name='add'),
  path('add/addrecord/', views.addrecord, name='addrecord'),
  path('delete/<int:id>', views.delete, name='delete'),
]

Mã Xóa Bản Ghi

Bây giờ chúng ta cần thêm một chế độ xem mới có tên là delete trong tệp members/ views.py:

members/views.py:

from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from django.urls import reverse

from .models import Members

def index(request):
  mymembers = Members.objects.all().values()
  template = loader.get_template('index.html')
  context = {
    'mymembers': mymembers,
  }
  return HttpResponse(template.render(context, request))
  
def add(request):
  template = loader.get_template('add.html')
  return HttpResponse(template.render({}, request))
  
def addrecord(request):
  x = request.POST['first']
  y = request.POST['last']
  member = Members(firstname=x, lastname=y)
  member.save()
  return HttpResponseRedirect(reverse('index'))

def delete(request, id):
  member = Members.objects.get(id=id)
  member.delete()
  return HttpResponseRedirect(reverse('index'))

Chế độ xem xóa thực hiện như sau:

  • Lấy id làm đối số.
  • Sử dụng id để định vị bản ghi chính xác trong bảng Thành viên.
  • Xóa bản ghi đó.
  • Chuyển hướng người dùng trở lại chế độ xem index.

Nhấp vào liên kết “xóa” cho Jane Doe và xem kết quả:

Mã Xóa Bản Ghi
Mã Xóa Bản Ghi

Leave a Reply

Your email address will not be published. Required fields are marked *

PHP Code Snippets Powered By : XYZScripts.com
.
.
.
.