FieldError при попытке удалить экземпляры Django с общим внешним ключом

Исправляя некоторые ошибки, я создал два тестовых экземпляра. Теперь, когда я закончил, я хотел удалить эти два теста:

nj.delete()
raise FieldError("Cannot resolve keyword '%s' into field. "
django.core.exceptions.FieldError: Cannot resolve keyword 'content_type' into field. Choices are: awards, career_highlights, content_object_org, content_object_pc, content_type_org, content_type_org_id, content_type_pc, content_type_pc_id, date_updated, daterange, end_date, honors, object_id_org, object_id_pc, org_history_updated, publications, role, significant_event, start_date, title, uniqid, updated_Vitae_bio_and_org_history

Эта ошибка возникает не на модели, из которой я удалял, а на промежуточной модели, которая также имеет генеративный внешний ключ. Django не может найти поле 'content_type', потому что такого поля не существует, поэтому я не знаю, почему он его ищет. Есть content_type_org и content_type_pc. Из контекста я предполагаю, что Django хочет получить content_type_org. Но как мне сказать Django, чтобы он искал именно его? Я также попробовал перейти к суперклассу и удалить тот же объект оттуда,

jn.delete()

но получил ту же ошибку.

Как упоминалось в комментариях, трудно помочь, не видя ваших моделей. Тем не менее, похоже, что вы переименовали поле content_type, которое используется в GenericForeignKey. Вам нужно указать переименованное поле в связанной модели с помощью GenericRelation, например, так:

class TaggedItem(models.Model):
    
    content_type_fk = models.ForeignKey(ContentType, on_delete=models.CASCADE)
    object_primary_key = models.PositiveIntegerField()
    content_object = GenericForeignKey('content_type_fk', 'object_primary_key')


class Blog(models.Model):
    tags = GenericRelation(
        TaggedItem,
        content_type_field='content_type_fk',
        object_id_field='object_primary_key',
    )

Подробности см. в docs.

Вернуться на верх