Genel bir ilişkiye sahip bir modelim var:App bir Django modeli nasıl alınır?
TrackedItem --- genericrelation ---> any model
İlk modelden, izlenen öğeden genel olarak elde etmek istiyorum.
Bunu değiştirmeden herhangi bir model üzerinde yapabilmem gerekir.
Bunu yapmak için içerik türünü ve nesne kimliğini almam gerekiyor. Model örneğine sahip olduğumdan, ancak nesne türünü aldığımdan nesne kimliğini almak kolaydır: ContentType.object.filter, modeli (yalnızca content_object.__class__.__name__
olan) ve app_label'i gerektirir.
Modelin güvenilir bir şekilde nasıl uygulanacağına dair bir fikrim yok.
Şimdilik app = content_object.__module__.split(".")[0]
'yi yapıyorum, ancak django katkı uygulamalarıyla çalışmıyor.
Bu, _meta'yı kullanmaktan daha iyi bir çözümdür. – Wogan
Bu mu? Bu veritabanına çarpmadı mı? – meshy
@meshy yes ama django ContentType, yöneticisi üzerinde bir önbellek kullanır, bu nedenle model başına yalnızca bir kez sorgular. – dalore