2010-04-07 1 views
0

У меня типичная ситуация с определением/экземпляром в моем моделировании данных. Я пытаюсь сохранить CONTENT_TYPE в виде GenericForeignKey в другой модели (модель определения) следующим образом:Хранение GenericForeignKey content_type в другой модели?

class IndicatorFieldInstance(models.Model): 
    definition = models.ForeignKey(IndicatorField) 
    object_id = models.PositiveIntegerField() 
    content_object = generic.GenericForeignKey(definition.content_type, 'object_id') 
    indicator_instance = models.ForeignKey(IndicatorInstance) 

Я также попытался это следующим образом:

content_object = generic.GenericForeignKey('definition__content_type', 'object_id') 

Ни один из этих методов, кажется, работать. Можно ли это достичь?

Для справки, вот модель определения:

class IndicatorField(models.Model): 
    name = models.CharField(max_length='255') 
    content_type = models.ForeignKey(ContentType) 
    indicator = models.ForeignKey(Indicator) 

Спасибо, Пит

ответ

1

Если вы не возражаете делать Lookups самостоятельно, то вы даже не необходимостиGenericForeignKey. Просто сделайте это свойство, которое выполняет поиск из соответствующих полей и возвращает модель. Вы потеряете любую обратную функциональность, если не будете делать больше работы, но большую часть времени это не то, о чем заботятся.

+0

Означает ли это, что то, что я пытаюсь сделать, невозможно? – slypete

+0

Возможно, с нынешней картой 'contenttypes' Django. Я уверен, что это может быть сделано, если кто-то достаточно заботится о его реализации. –

+0

Я думаю, мой вопрос был «это реализовано?» Видимо, нет ... Спасибо – slypete

Смежные вопросы