0
在我的窗口小部件模型,我想有一個GenericForeignKey到名爲過濾器的模型,這是在另一個數據庫表映射與適當的分貝路由器:GenericForeignKey在另一個數據庫模型
# default database
class Widget(models.model):
content_type = models.ForeignKey(ContentType, blank=True, null=True)
object_id = IntegerField(blank=True, null=True)
content_object = generic.GenericForeignKey()
# router on the second db
class Db2_Manager(models.manager.Manager):
db = 'db2'
def get_queryset(self):
return queryset(self.model, using=self.db)
# Model on the second db
class Filter(models.Model):
title=models.TextField()
class Meta:
db_table = u'abc\".\"_filter'
objects = Db2_Manager()
例子在Django外殼:
[in] : f1 = Filter.objects.first() # This is the external db object, which works
[in] : f1.title
[out]: 'My title'
[in]: new_widget = Widget(content_type=ContentType.objects.get_for_model(f1), object_id=f1.id)
[in] : new_widget.save()
[in] : new_widget.content_type
[out]: <ContentType: filter>
[in] : new_widget.object_id
[out]: 23
[in] : new_widget.content_object
[out]: ProgrammingError: schema "abc" does not exist
我已複製的篩選數據庫(DB2)的django_content_type表,但我得到上面...任何建議錯誤如何正確路線new_widget.content_object
到正確的數據庫?
在此先感謝。
我知道這個限制,但是沒有技巧或解決方法來填充content_object?不幸的是我不能移動任何模型... – caneta
https://code.djangoproject.com/ticket/15610 – Anentropic
我不認爲你想複製內容類型表...它是需要修補的Django GenericForeignKey機制本身 – Anentropic