я не могу выполнить миграцию в мою уже построенную модель после расширения пользовательской модели до django - PullRequest
1 голос
/ 09 апреля 2020

я просто застрял с ошибкой при выполнении миграции на мой django проект. В моем проекте, который уже разработан на 50%, я использую модель владельца для представления владельца магазина, а затем я использовал модель пользователя для входа в систему и для регистрации. поэтому я попытался использовать модель пользователя в своей модели владельца, чтобы эффективно использовать обе модели с дополнительными полями. Я попытался расширить пользовательскую модель в модели владельца , используя поле onetoone. после этого я не смог выполнить миграцию, поэтому я удалил все файлы миграции, но после этого он начал выдавать эту ошибку при выполнении миграции: -

py manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\core\management\__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\core\management\base.py", line 369, in execute
    output = self.handle(*args, **options)
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\core\management\base.py", line 83, in wrapped
    res = handle_func(*args, **kwargs)
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\core\management\commands\makemigrations.py", line 87, in handle
    loader = MigrationLoader(None, ignore_no_migrations=True)
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\db\migrations\loader.py", line 49, in __init__
    self.build_graph()
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\db\migrations\loader.py", line 274, in build_graph
    raise exc
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\db\migrations\loader.py", line 248, in build_graph
    self.graph.validate_consistency()
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\db\migrations\graph.py", line 195, in validate_consistency
    [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\db\migrations\graph.py", line 195, in <listcomp>
    [n.raise_error() for n in self.node_map.values() if isinstance(n, DummyNode)]
  File "C:\Users\Mayur\PycharmProjects\StartUp\venv\lib\site-packages\django\db\migrations\graph.py", line 58, in raise_error
    raise NodeNotFoundError(self.error_message, self.key, origin=self.origin)
django.db.migrations.exceptions.NodeNotFoundError: Migration listings.0001_initial dependencies reference nonexistent parent node ('owners', '0001_initial')

вот моя модель владельца: -

from django.db import models
from django.contrib.auth.models import User


class Owner(models.Model):
    user = models.OneToOneField(User,on_delete=models.CASCADE, default=False)
    name=models.CharField(max_length=200)
    photo=models.ImageField(upload_to='photos/%Y/%m/%d/')
    description=models.TextField(blank=True)
    phone=models.CharField(max_length=20)
    email=models.CharField(max_length=20)

    def __str__(self):
        return self.name

я надеюсь, что это поможет мне, потому что я застрял здесь и не понимаю, как решить эту проблему.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Вы используете термин «папка миграции моего django проекта» (в комментарии выше), и это неправильно - у каждого приложения в вашем проекте есть собственная папка миграции. В частности, в вашем приложении «списки» все еще есть миграция, и в качестве зависимости он перечисляет одну из удаленных вами миграций.

0 голосов
/ 11 апреля 2020

после просмотра и отладки этой трассировки стека я наконец избавился от этой проблемы. я удаляю файл миграции 0001 из моего приложения листинга, которое имело отношения с моделью владельца, а затем, когда я запускаю команду makemigrations, она не выдает мне ни ошибки, ни исключения, как я упоминал выше.

...