Django-qmethod adalah aplikasi Django untuk dengan mudah mendefinisikan operasi pada koleksi model Django (yaitu, querysets dan Manajer).
Suatu hari, saya berharap sesuatu seperti ini termasuk dalam Django inti.
Penggunaan
Penggunaan dasar adalah sebagai berikut:
impor cPickle sebagai acar
dari model impor django.db
dari djqmethod impor Manager, querymethod
class Group (models.Model):
& Nbsp; lulus
class Person (models.Model):
& Nbsp;. Jenis kelamin = dict (m = 'Pria', f = 'Wanita', u = 'Unspecified') item ()
& Nbsp; kelompok = models.ForeignKey (Group, related_name = 'orang')
& Nbsp; jenis kelamin = models.CharField (max_length = 1, pilihan = jenis kelamin)
& Nbsp; umur = models.PositiveIntegerField ()
& Nbsp; # Catatan: Anda harus membuat manajer eksplisit di sini.
& Nbsp; benda = Manager ()
& Nbsp;querymethod
& Nbsp; def anak di bawah umur (query):
& Nbsp; kembali query.filter (age__lt = 18)
& Nbsp;querymethod
& Nbsp; def dewasa (query):
& Nbsp; kembali query.filter (age__gte = 18)
# The `anak di bawah umur ()` dan `dewasa ()` metode akan tersedia pada manajer:
menegaskan isinstance (Person.objects.minors (), models.query.QuerySet)
# Mereka akan tersedia di querysets berikutnya:
menegaskan isinstance (Person.objects.filter (jenis kelamin = 'm'). anak di bawah umur (),
& Nbsp; models.query.QuerySet)
# Mereka juga akan tersedia pada hubungan, jika mereka dicampur dengan
# Manager default untuk model yang:
Kelompok = Group.objects.all () [0]
menegaskan isinstance (group.people.minors (), models.query.QuerySet)
# The querysets yang dihasilkan benar-benar acar-aman:
menegaskan isinstance (pickle.loads (pickle.dumps (Person.objects.minors ())),
& Nbsp; models.query.QuerySet)
Sebuah proyek uji terletak di test / contoh /; konsultasikan hal ini untuk contoh yang lebih komprehensif.
Instalasi
pip menginstal Django-qmethod
Persyaratan :
- Python
- Django
Komentar tidak ditemukan