SQLAlchemy ile bir ilişkinin tembel yüklü olup olmadığını önceden bilmenin bir yolu var mı?
Örneğin, tembel bir ebeveyn -> çocuk ilişkisi ve "ebeveyn" in bir örneği verildiğinde, soruyu tetiklemeden "X.children" in yüklü olup olmadığını bilmek istiyorum.SQLAlchemy ile tembel bir ilişkinin henüz yüklenmediğini nasıl öğrenebilirim?
cevap
Verilerin zaten var olup olmadığını kontrol etmek için çocuğun __dict__
öznitelik sözlüğüne bakabileceğinizi düşünüyorum.
(etkin aynı şeyi yapar gerçi) olduğu gibi) hasattr (kullanmaktır Haes cevap biraz daha neater:
>>> hasattr(X, 'children')
False
Güzel, teşekkürler :) – Joril
Mevcut sqlalchemy. 'hasattr (obj, field) 'nesneye değil, obj .__ dict__'. –
SQLAlchemy 0.8'de test ettim ve bu nesne ayrılırsa işe yarar. Ancak ekliyse, hasattr kullanarak "çocuk" tembel yükünü tetikler, ki bu muhtemelen sizin istediğinizi değil. Bunun yerine, 0,8'de inspect() çağrısını kullanabiliriz: 'res = inspect (X)' '' res.unloaded' içinde '' - nesnenin takılı mı yoksa bağımsız mı olduğu çalışır. – foz
Hepiniz yüksüz özelliklerin bir listesini alabilirsiniz (ilişkiler ve sütunlar her ikisi de) sqlalchemy.orm.attributes.instance_state(obj).unloaded
'dan.
Bkz: Completing object with its relations and avoiding unnecessary queries in sqlalchemy
daha kolay bir yolu aynı sonuçları verir inspect()
, kullanmaktır: Bu çalışmaz
from sqlalchemy import inspect
from sqlalchemy.orm import lazyload
user = session.query(User).options(lazyload(User.articles)).first()
ins = inspect(user)
ins.unloaded # <- set or properties that are not yet loaded
- 1. sqlalchemy sütunların tembel yükleme
- 2. SQLAlchemy: Tembel yükleme kaçınarak sığ kopya
- 3. Bir öğe animasyonluysa jQuery ile nasıl öğrenebilirim?
- 4. SQLAlchemy kullanarak yeni bir veritabanı nasıl oluşturulur? Sqlalchemy ile
- 5. Hızlı bir şekilde javascript ile yüklenip yüklenmediğini nasıl anlarım?
- 6. mysql ve php'de yinelenen güncelleştirmeyi eklerken son işlemin eklenip yüklenmediğini veya güncelleneceğini nasıl öğrenebilirim?
- 7. SqlAlchemy ile sorun - "Ana örnek <SomeClass> bir oturuma bağlı değil; tembel yükleme işlemi ..."
- 8. Hazırda beklet, koleksiyonun tamamen yüklenip yüklenmediğini sınama
- 9. SQLAlchemy - Taşıma Kısıtlama Başarısızlıkları sqlalchemy ile
- 10. RequireJS ile tembel yükleme nasıl yapılır?
- 11. DURUM ORM (SQLalchemy) ile
- 12. SQLAlchemy
- 13. SqlAlchemy
- 14. Retina görüntüleri ile tembel yükleme?
- 15. Git'in yüklenip yüklenmediğini nasıl kontrol edelim .bashrc
- 16. SQLAlchemy
- 17. SQLAlchemy
- 18. Bir tembel değerlendirmeyi açıklayın
- 19. Modelin yeni olup olmadığını nasıl öğrenebilirim?
- 20. SQLAlchemy
- 21. DllImport, DLL'nin yüklenip yüklenmediğini nasıl denetlerim?
- 22. SQLAlchemy
- 23. SQLAlchemy ile SQL Görünümü nasıl oluşturulur?
- 24. SqlAlchemy ile Veritabanından Armatürler Nasıl Oluşturulur
- 25. SqlAlchemy:
- 26. Tembel erişimciler nasıl yazılır
- 27. SQLAlchemy ile sql sayısını (*) filtreleme
- 28. SQLAlchemy
- 29. WordPress'de henüz bir klasör yoksa nasıl oluşturulur?
- 30. sqlalchemy
O inşaat, thanks :) – Joril