django-qmethod là một ứng dụng Django để dễ dàng xác định các hoạt động trên các bộ sưu tập các mô hình Django (có nghĩa là, QuerySets và quản lý).
Một ngày nọ, tôi hy vọng một cái gì đó như thế này được bao gồm trong Django lõi.
Cách sử dụng
Sử dụng cơ bản như sau:
cPickle nhập khẩu như dưa
từ các mô hình nhập khẩu django.db
từ djqmethod quản lý nhập khẩu, querymethod
lớp Group (models.Model):
& Nbsp; vượt qua
class Person (models.Model):
& Nbsp;. Giới tính = dict (m = 'Nam', f = 'Nữ', u = 'Không quy định') các mặt hàng ()
& Nbsp; nhóm = models.ForeignKey (Group, related_name = 'người')
& Nbsp; giới tính = models.CharField (max_length = 1, lựa chọn giới tính =)
& Nbsp; tuổi = models.PositiveIntegerField ()
& Nbsp; # Lưu ý: bạn cần phải tạo ra một trình quản lý rõ ràng ở đây.
& Nbsp; đối tượng = Manager ()
& Nbsp;querymethod
& Nbsp; def trẻ vị thành niên (query):
& Nbsp; trở query.filter (age__lt = 18)
& Nbsp;querymethod
& Nbsp; def người lớn (query):
& Nbsp; trở query.filter (age__gte = 18)
# The `trẻ vị thành niên ()` và `người lớn ()` phương pháp này sẽ có sẵn vào người quản lý:
khẳng định isinstance (Person.objects.minors (), models.query.QuerySet)
# Chúng sẽ trở về querysets sau:
khẳng định isinstance (Person.objects.filter (giới tính = 'm'). vị thành niên (),
& Nbsp; models.query.QuerySet)
# Họ cũng sẽ có sẵn trên các mối quan hệ, nếu họ đã được pha trộn vào
# Quản lý mặc định cho các mô hình:
group = Group.objects.all () [0]
khẳng định isinstance (group.people.minors (), models.query.QuerySet)
# Các QuerySets sản xuất là hoàn toàn dưa an toàn:
khẳng định isinstance (pickle.loads (pickle.dumps (Person.objects.minors ())),
& Nbsp; models.query.QuerySet)
Một dự án thử nghiệm nằm trong thử nghiệm / example /; tham khảo ý kiến này cho một ví dụ toàn diện hơn.
Cài đặt
pips cài đặt django-qmethod
Yêu cầu :
- Python
- Django
Bình luận không