Как сохранить ссылку на тип модели в другом экземпляре модели - PullRequest
1 голос
/ 02 декабря 2011

Итак, это небольшое упражнение в мета-мета. Я хочу сохранить ссылку на модель в виде строки в таблице, связанной с другой моделью. Примерно так:

class Widget(models.Model):
  related = models.Model() # data model associated with this widget
  identifier = models.CharField(max_length=500) # human-friendly descriptor

Это не подтверждается .. Я нашел приемлемый обходной путь , но мне интересно, есть ли более правильный / изящный способ сделать это.

Спасибо, волшебники Джанго!

Ответы [ 2 ]

3 голосов
/ 02 декабря 2011

Если я правильно понимаю ваш вопрос, тогда GenericForeignKey - это то, что вам нужно.Вы смотрели на это?

0 голосов
/ 02 декабря 2011

Если вы просто хотите сохранить фактическую модель другого объекта, вы можете просто использовать внешний ключ для типа контента :

from django.contrib.contenttypes.models import ContentType
class Widget(models.Model):
    related = models.ForeignKey(ContentType)
    identifier = models.CharField(max_length=500) # human-friendly descriptor
...