Django (и DRF) "ContentType, соответствующий запросу, не существует" на неуправляемой модели
Я получаю ошибку ContentType matching query does not exist.
на неуправляемой (managed = False
) модели.
Я думал, что он будет просто брать данные из базы данных, поэтому я не уверен, почему он проверяет типы содержимого.
Мой план состоял в том, чтобы иметь приложение history
, которое извлекает данные истории из таблиц, созданных библиотекой django-simple-history
. Итак, у меня есть модель приложения (используя для примера приложение Poll
):
class Poll(models.Model):
question = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published', auto_now_add=True)
history = HistoricalRecords()
Затем у меня есть историческая версия этой модели (из базы данных, созданной django-simple-history
):
class HistoricalPoll(models.Model):
id = models.BigIntegerField()
question = models.CharField(max_length=200)
pub_date = models.DateTimeField()
history_id = models.AutoField(primary_key=True)
history_date = models.DateTimeField()
history_change_reason = models.CharField(max_length=100, blank=True, null=True)
history_type = models.CharField(max_length=1)
history_user = models.ForeignKey(settings.AUTH_USER_MODEL, models.DO_NOTHING, blank=True, null=True)
class Meta:
managed = False
db_table = 'polls_historicalpoll'
И сериализатор для модели истории:
class HistoricalPollSerializer(serializers.ModelSerializer):
class Meta:
model = HistoricalPoll
fields = '__all__'
И набор представлений:
class HistoricalPollViewSet(viewsets.ModelViewSet):
serializer_class = HistoricalPollSerializer
permission_classes = [permissions.IsAuthenticated]
queryset = HistoricalPoll.objects.all()
И URL:
router.register(r"history", HistoricalPollViewSet)
Но когда я обращаюсь к /history
, я получаю только ошибку:
DoesNotExist at /history/
ContentType matching query does not exist.
Почему нельзя просто взять данные из базы данных?