В моем приложении, у меня есть определение модели, как:Использование CONTENTTYPE для raw_id_fields
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 model и content_id, но я не знаю, как это сделать с помощью ContentType?
Как я уже сказал, мои модели не содержат FK для каждой модели, а модель типа Fk для xontent, поле для идентификатора связанного объекта и genetricFK. Но поскольку genericFk не имеет представления поля в db, он имеет множество ограничений, и я не могу использовать GenericFK в admin.py – FallenAngel