我做了一個通用的外鍵,以通用的方式引用報表模型中的任何類型(A或B)模型。
它工作正常,但我的問題是,現在,我需要做一個查詢來檢索所有引用特定類型的模型的報表實例(例如所有具有foreign_key引用類A的報表)。我試圖訪問CONTENT_TYPE在數據庫中,但顯然這是不可能的(該變量不存在...)
這裏是我的模型:
Django - 如何引用泛型外鍵中的特定類型?
class Report(models.Model):
content_type = models.ForeignKey(ContentType)
object_id = models.CharField(max_length=50)
reported_item = generic.GenericForeignKey('content_type', 'object_id')
class A(models.Model):
reports = generic.GenericRelation(Report)
class B(models.Model):
reports = generic.GenericRelation(Report)
你有任何想法如何做到這一點?
爲了防萬一它會改變任何東西,我使用mongoDB作爲我的數據庫。
非常感謝!
編輯:
當我在數據庫中顯示的報表對象,這裏是結果:
db.website_report.findOne()
{
"_id" : ObjectId("50afa903a96c5c2f63000001"),
"content_type_id" : ObjectId("50afa903a96c5c2f63000000"),
"object_id" : "50afa8a8a96c5c2f53000001",
}
正如你所看到的,數據庫的內容無關,同我的模型,所以我不要相似不知道如何進行查詢以獲取所有具有A的外鍵的報告。
您能幫助我嗎?
當您試圖按內容類型查找時,「變量不存在」是什麼意思。當然,這是做這件事的方法,所以你應該發佈你試過的代碼,這樣我們就可以看到出了什麼問題。 –