Почему Django продолжает запрашивать типы контента, являются устаревшими и их необходимо удалить

Я пробовал все, что было найдено:

Можно ли автоматически удалить устаревшие типы контента в Django?

Удаление неиспользуемых моделей, появление устаревших типов содержимого

InvalidBasesError: не удается разрешить базы для [<ModelState: 'users.GroupProxy'>]

Django Wagtail CMS migrate: не удается разрешить базы для [<ModelState: 'app.CustomPage'>

Django migrate with zinnia-InvalidBasesError: не удается разрешить базы для [<ModelState: 'zinnia.Author'>]

Итак, вот моя проблема: у меня есть:

  • ComicBook , у которого есть много-много Planche
  • Planche которая имеет много-много Bande 's
  • Bande , у которого есть много-много Vignette 's
  • … и на три уровня глубже (неважно, что это всегда один и тот же принцип)

Мне нужно, чтобы между таблицами «многие-ко-многим» добавлялось поле « importance », чтобы иметь возможность создавать индивидуальные отношения. Таким образом, я создал

  • ComicBookPlanche который является таблицей «многие-ко-многим» с полевым importance
  • PlancheBande который является PlancheBande «многие-ко-многим» с полевым importance

Все работало отлично, пока я не решил переименовать ComicBook в Book . С этого момента я всегда получаю сообщение django.db.migrations.state.InvalidBasesError: Cannot resolve bases for...

Я даже попытался удалить все таблицы и папку переноса , ничего не изменилось … Я попытался прокомментировать мое приложение -> отлично, а затем не комментировать и все еще:

 django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [<ModelState: 'main.TexteLongTextesThrough'>, <ModelState: 'main.TexteCourtTextesThrough'>, <ModelState: 'main.VignetteBullesThrough'>, <ModelState: 'main.LivrePlanchesThrough'>] 

Я злюсь. Итак, вот что я сделал:

  • новое приложение
  • makemigrations затем migrate -> auth, admin, сеансы, созданные сайты не проблема
  • скопируйте / вставьте мои models.py без admin.py .

makemigrations -> perfect:

 Migrations for 'main': 0001_initial.py: - Create model Bande - Create model BandeVignette - Create model Bulle - Create model ContenuCourt - Create model ContenuLong - Create model Langue - Create model Livre - Create model Personne - Create model Planche - Create model PlancheBande - Create model TexteCourt - Create model TexteLong - Create model Vignette - Add field description to planche - Add field planches to livre 

Затем migrate -> perfect:

 Operations to perform: Synchronize unmigrated apps: staticfiles, messages Apply all migrations: sessions, admin, sites, auth, contenttypes, main Synchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL... Running migrations: Rendering model states... DONE Applying main.0001_initial... OK Process finished with exit code 0 

Затем скопируйте / вставьте мой admin.py затем makemigrations -> perfect:

 Migrations for 'main': 0002_livreplanchesthrough_textecourttextesthrough_textelongtextesthrough_vignettebullesthrough.py: - Create proxy model LivrePlanchesThrough - Create proxy model TexteCourtTextesThrough - Create proxy model TexteLongTextesThrough - Create proxy model VignetteBullesThrough Process finished with exit code 0 

Затем каждый раз, когда я пытаюсь выполнить migrate он все время спрашивает меня об этом, независимо от того, спрашиваю ли я «да» или «нет»:

 >>> migrate Operations to perform: Synchronize unmigrated apps: staticfiles, messages Apply all migrations: sessions, admin, sites, auth, contenttypes, main Synchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL... Running migrations: No migrations to apply. The following content types are stale and need to be deleted: main | textelong_textes main | textecourt_textes main | livre_planches main | vignette_bulles Any objects related to these content types by a foreign key will also be deleted. Are you sure you want to delete these content types? If you're unsure, answer 'no'. Type 'yes' to continue, or 'no' to cancel: yes Process finished with exit code 0 

Что я могу сделать, чтобы он переставал спрашивать, и в чем проблема?

One Solution collect form web for “Почему Django продолжает запрашивать типы контента, являются устаревшими и их необходимо удалить”

Несколько вещей здесь: похоже, вы создали модели в одной партии миграции, а затем создали сквозные таблицы во второй партии миграций. Это неправильно, вы должны иметь сквозные таблицы, написанные и перенесенные одновременно с основными моделями.

Что произошло в последнем примере, так это то, что когда вы впервые создали модели, django пошел и создал собственный стандарт через таблицы, затем вы пошли и добавили пользовательские таблицы, поэтому django просит вас удалить исходные (старые).

Как вы все сформулировали, похоже, вы разместили определения модели для сквозных таблиц в admin.py ? Почему ты бы так поступил? Они должны быть в models.py рядом с моделями, которые они «соединяют».

Кроме того, вы не должны использовать Proxy модель и без фактического исходного кода, что вполне может быть основной причиной вашей проблемы. Если все, что вы пытаетесь сделать, это дополнительное поле на основе отношений, вы должны следовать шаблону здесь: https://docs.djangoproject.com/en/1.8/topics/db/models/#extra-fields- на многие-ко-многим-отношений

  • Как удалить запись в моделях Django?
  • Django: Название модели столкновения
  • как добавить разрешения в Django в модели и протестировать его с помощью оболочки
  • Пейджинг в зависимости от группировки элементов в Django
  • Django - как создать файл и сохранить его в FileField модели?
  • Поиск цепочек через набор запросов
  • Как я могу найти объединение двух наборов запросов Django?
  • Django Queryset: вставить поле VARCHAR в SQL перед фильтрацией
  •  
    Interesting Posts for Van-Lav

    Как настроить python ctypes 'c_wchar_p' и 'c_char_p' restype?

    Когда я использую запросы python для проверки сайта, если сайт перенаправляет меня на другую страницу, я буду знать?

    Печать на стандартный принтер с Python?

    Время жизни временных объектов в SWIP-пакетах Python (?)

    Задача Python asyncio получила плохую доходность

    Ввод символов utf-8 в python в интерактивном режиме на OS-X

    Каков наилучший способ повторить публикацию сообщений с комбу?

    лучше синтаксис for-loop для обнаружения пустых последовательностей?

    Ошибка Python или неиспользуемая ошибка при перекрестной компиляции GDB

    Django, Python: Есть ли простой способ преобразования ключей POST в стиле PHP в многомерный dict?

    Как лучше всего выполнять многопроцессорство в запросах с сервером Porn Tornado?

    Создать список словарей Python

    Невозможно изменить файл базы данных django rest base.html

    Как фильтровать объекты для аннотации count в Django?

    Python Rope: как найти все недостающие импорт и ошибки во всех рефакторингах всех модулей

    Python - лучший язык программирования в мире.