レポートモデル内の任意のタイプ(AまたはB)のモデルを一般的な方法で参照できるように、一般的な外部キーを作成しました。
正常に動作しますが、私の問題は、特定のタイプのモデルを参照するすべてのReportインスタンスを取得するためのクエリを作成する必要があることです(たとえば、クラスAを参照するforeign_keyを持つすべてのReport)。データベースの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",
}
ご覧のとおり、データベースのコンテンツは私のモデルと何も似ていないので、クエリを実行して、foreign_keyがAのすべてのレポートを取得する方法がわかり
ません。手伝ってくれませんか。