django-logicaldelete

Phần mềm chụp màn hình:
django-logicaldelete
Các chi tiết về phần mềm:
Phiên bản: 1.1 Beta 1 Dev3
Ngày tải lên: 12 May 15
Nhà phát triển: Patrick Altman
Giấy phép: Miễn phí
Phổ biến: 1

Rating: nan/5 (Total Votes: 0)

comments Developer
django-logicaldelete là một ứng dụng nhỏ và đơn giản mà tôi đã ném lại với nhau để có được một số tái sử dụng ra khỏi cái gì tôi làm trong gần như mọi dự án và mỗi mô hình tôi tạo & nbsp;. Nó quá dễ dàng cho dữ liệu tốt để có được xóa và nó được phục hồi được. Nó cũng quá dễ dàng để khắc phục điều này bằng cách ghi đè delete phương pháp của mô hình () và chỉ cần đánh dấu những bản ghi là bị xóa và sau đó tận dụng quản lý của Django để thay đổi hành vi mặc định để chi tiết một cách hợp lý xóa không được trả lại trong querysets.
Có hai trường hợp ngoại lệ Tuy nhiên, tôi nhận thấy có ích cho quy tắc này.
& Nbsp; 1. Trong admin tôi muốn nhìn thấy tất cả mọi thứ với một chỉ số hay không nó đã bị xóa, với khả năng thẩm thấu xuống các hồ sơ chỉ hoạt động, (hoặc xóa cho rằng vấn đề).
& Nbsp; 2. Tôi vẫn nghĩ rằng đó là một yêu cầu hợp lệ khi một mục được nạp cho bởi giá trị của nó chính khóa, mà đối tượng cần quay trở lại, thậm chí nếu nó được đánh dấu là bị xóa.
Sử dụng django-logicaldelete
Sử dụng ứng dụng là khá đơn giản:
& Nbsp; 1. Đặt logicaldelete tiểu thư mục trong Python đường dẫn của bạn.
& Nbsp; 2. Kế thừa từ logicaldelete.models.Model cho tất cả các mô hình mà bạn muốn chia sẻ trong các chức năng này.
& Nbsp; 3. Tạo và / hoặc Đăng ký quản trị viên cho mỗi một trong các mô hình sử dụng logicaldelete.admin.ModelAdmin
Bổ sung
Xóa logic được xử lý theo ngày đóng dấu một cột date_removed. Ngoài ra, một cột DATE_CREATED và date_modified sẽ được dân cư như là một tiện nghi.
Extensions có thể
Bạn có thể dễ dàng phân lớp hai lớp học để cung cấp chức năng chung và hữu ích cho mô hình của bạn.
UUID Primary Key
Tôi thường sử dụng các lĩnh vực UUID cho khóa chính của tôi bởi vì họ cho phép tôi để Shard bảng của tôi nếu và khi tôi cần, ngoài ra, họ cung cấp một id obfuscated để dữ liệu của tôi (những người không thể xác định có bao nhiêu của một đối tượng nào đó tôi có trong cơ sở dữ liệu của tôi, nếu tôi không muốn họ biết, nhưng chỉ đơn giản là tìm kiếm một id một số nguyên trong URL).
Chuỗi Dòng
Nhiều lần tôi thấy nó hữu ích để có một trường số nguyên trên mô hình của tôi mà cho phép và kiểm soát một cách rõ ràng trình tự. Tôi thường thực hiện điều này như là một loại giảm dần thực hiện nơi dữ liệu được sắp xếp từ cao xuống thấp theo giá trị chuỗi.
Để thực hiện điều này bạn muốn phân lớp cả các Model và ModelAdmin, nơi mẫu sẽ là một bổ sung đơn giản rõ ràng của một IntegerField, các ModelAdmin, sẽ ghi đè lên get_query_set, để làm một cái gì đó như:
lớp SequencedModel (logicaldelete.models.Model):
& Nbsp; trình tự = models.IntegerField ()
lớp MyLogicalDeletedManager (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (tự):
& Nbsp; nếu self.model:
& Nbsp;. Qs = super (MyLogicalDeletedManager, tự) .get_query_set () lọc (date_removed__isnull = True)
& Nbsp; nếu SequencedModel trong inspect.getmro (self.model):
& Nbsp; qs = qs.order_by ('- chuỗi')
& Nbsp; qs trở lại

là gì mới trong phiên bản này:

  • tất cả mọi thứ đã thay đổi để all_with_deleted trên LogicalDeleteManager
  • LogicalDeleteManager chuyển từ logicaldelete.models để logicaldelete.managers
  • Bỏ xóa và tất cả mọi thứ từ querysets logicaldelete.models.Model

Yêu cầu :

  • Python
  • Django

Phần mềm khác của nhà phát triển Patrick Altman

formly
formly

11 Apr 15

formly
formly

20 Feb 15

nashvegas
nashvegas

14 Apr 15

Ý kiến ​​để django-logicaldelete

Bình luận không
Nhập bình luận
Bật hình ảnh!