我创建了一个通用外键,以便能够以通用方式引用 Report 模型中的任何类型(A 或 B)模型。
它工作正常,但我的问题是现在,我需要进行查询以检索所有引用特定类型模型的报告实例(例如,所有具有引用类 A 的外键的报告)。我试图访问数据库中的 content_type 但显然不可能(变量不存在......)
这是我的模型:
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 的报告。
您能帮帮我吗?