В моем приложении у меня есть определение модели, например:
class SomeModel(models.Model):
someFK = Models.ForeignKey(SomeModel, null=True, blank=True)
otherFK = Models.ForeignKey(OtherModel, null=True, blank=True)
...
Эта модель хранит данные о журналах, и существует более 1 типа модели для регистрации, поэтому я ставлю 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?