在我的申請,我有這樣一個模型定義:使用的contentType爲raw_id_fields
class SomeModel(models.Model):
someFK = Models.ForeignKey(SomeModel, null=True, blank=True)
otherFK = Models.ForeignKey(OtherModel, null=True, blank=True)
...
這種模式將數據保存有關記錄,並有超過100種型號的要記錄的,所以我把一個FK爲每個相關的模型。對於每條記錄,只使用其中一個FK,其他FK的設置爲NULL = True。
但是我不想改變我的模型,當我需要登錄一些其他的東西。所以,我改變我的模型,以便:
class SomeModel(models.Model):
content_type = models.ForeignKey(ContentType)
content_id = models.IntegerField()
所以我用下面得到我想要的東西:
content_type.get_object_for_this_type(id=content_id)
其確定。但是當admin.py發揮作用時,它會導致問題,因爲我有一些相關模型需要記錄的1.000.000+數據,所以我需要使用raw_id_fields。由於我沒有FK爲每個相關的模型,我必須使用ContentType模型和content_id,但我不知道如何使用ContentType做到這一點?
正如我所說的,我的模型不包含每個模型的FK,而是一個Fk to xontent類型模型,一個相關對象的ID字段以及一個genetricFK。但是,由於genericFk在db中沒有字段表示,所以它有很多限制,我不能在admin.py中使用GenericFK – FallenAngel 2010-10-16 07:02:28