Sorgulama yapmak ve birden çok kez dışarıda çağırmak yerine bir şeylerin listesini hariç tutmak için bir yol var mı?Django nesnesi çoklu exclude()
cevap
dayanarak, Sadece bir etiket listesini hariç tutmak istediğiniz gibi geliyor.
names_to_exclude = [o.name for o in objects_to_exclude]
Foo.objects.exclude(name__in=names_to_exclude)
istediğin bu yapar mı: Yani sadece in
filtresi kullanabilirsiniz?
Çağrının yanlış olması, birden çok kez hariç tutuluyor mu? Sorgular tembeldir, sizden veri çekmeye çalışana kadar hiçbir şey olmaz, bu nedenle .exclude() öğesini bir kereden fazla kullanmanın bir dezavantajı yoktur.
Bir etiketler manytomany alanı olan bir model var. Kullanıcı büyük miktarda ihmal etiketine sahip olabilir. Kullanıcının görmek istemediği nesneleri dinamik olarak hariç tutmak istiyorum. Kaç defa arayacağınızı, çalışma saatine kadar hariç tutmayacağım. – Johnd
"Sorgular tembel" ve "verileri ondan çekme" ile ne demek istediğinizi açıklayabilir misiniz? Thnx – akki
Tembel anlamı, sorguyu fiilen kullanana kadar veritabanından hiçbir veri çekilmemesidir. Ben doğrudan objects_to_exclude listesiyle bunu –
Sen Q object ile oldukça kolay bir şekilde yapabilirsiniz:
from django.db.models import Q
excludes = None
for tag in ignored_tags:
q = Q(tag=tag)
excludes = (excludes and (excludes | q)) or q # makes sure excludes is set properly
set_minus_excluded = Foo.objects.exclude(excludes)
Ayrıca) (dışlamak ile dinamik olarak bunu yapmak mümkün olmalıdır: Ned'e yanıtınız
qs = Foo.objects.all()
for tag in ignored_tags:
qs = qs.exclude(tag=tag)
Ben büyük veri setleri yani pahalı olabilir for döngüsü yerine sorgu kümesi doğrudan gereken değerleri almak için daha iyi olacağını düşünüyorum Daniel Roseman cevabı geliştirmek için
names_to_exclude = objects_to_exclude.values_list('name')
Foo.objects.exclude(name__in=names_to_exclude)
Deneyebilirsin bu da.
exclude_list = ['A', 'B', 'C'] qs = Foo.objects.exclude(items__in=exclude_list)
- 1. Django şablon nesnesi türü
- 2. Django güncelleştirme nesnesi
- 3. 'long' nesnesi django
- 4. django nesnesi pk değil ama kimlik var
- 5. django-'NoneType 'nesnesi callable değil
- 6. Django nesnesi ManyToMany ilişkisinden kaldırılıyor
- 7. Django çoklu form fabrika
- 8. Django çoklu yapılandırmaları ayarlama
- 9. Django: Order_by çoklu alanlar
- 10. Django kaydı ve çoklu profiller
- 11. django-rest-framework çoklu serializer?
- 12. django: TypeError: 'tuple' nesnesi callable değil
- 13. Laravel 5 yerelleştirme: exclude/public/directory
- 14. AWS S3 `--exclude` göz ardı ediliyor
- 15. RemovedInDjango18Warning: 'fields' niteliği veya 'exclude' özelliği olmadan ModelForm oluşturulmadan onaylanır
- 16. İki (çoklu) alanda Django Haystack otomatik tamamlama
- 17. Django model tasarımı - 1 veya çoklu tablo
- 18. Çoklu ModelAdmins/görünümler aynı modelde Django admin
- 19. Çoklu Django Depolama Arka uç sistemleri
- 20. Django: Çoklu yabancı anahtarlara sahip Nasıl
- 21. Django REST Framework - çoklu modeller/API'ler?
- 22. 'dict' nesnesi callable değil
- 23. Python Çoklu İşlem - 'Kuyruk' nesnesi 'task_done'/'join' özelliğine sahip değil
- 24. Grails: iki etki alanı nesnesi arasındaki çoklu ilişkiler
- 25. Çoklu veritabanları için bir MySQLdb bağlantı nesnesi ayarlama
- 26. Django yerine TourCategory adının `TourCategory Nesnesi` dize görüntüler
- 27. Django "xxxxxx Nesnesi" yönetici eylemi kenar çubuğunda özelleştirme gösteriliyor
- 28. Celery + Django hatası: TypeError: 'Settings' nesnesi abonelik değildir
- 29. bir DateTime nesnesi
- 30. Django
, ben o.name kullanmayın: ignore_tags = request.user.ignore_tags.all() case_list = Case.objects.exclude (tags__in = ignore_tags)) – Johnd