Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在django中将用户模型扩展到我已经构建的模型之后,我无法迁移到它_Django_Makemigrations - Fatal编程技术网

在django中将用户模型扩展到我已经构建的模型之后,我无法迁移到它

在django中将用户模型扩展到我已经构建的模型之后,我无法迁移到它,django,makemigrations,Django,Makemigrations,我只是在迁移到django项目时遇到了错误。 在我的项目,这已经是50%的dveloped我使用所有者模型来代表店主,然后我使用用户模型登录和注册的目的。 因此,我尝试在我的所有者模型中使用用户模型,以便在附加字段中有效地利用这两种模型。 我尝试使用onetoone字段扩展所有者模型中的用户模型。 执行此操作后,我无法执行迁移,因此我删除了所有迁移文件,但在此之后,在执行迁移时开始出现此错误:- py manage.py makemigrations Traceback (most recent

我只是在迁移到django项目时遇到了错误。 在我的项目,这已经是50%的dveloped我使用所有者模型来代表店主,然后我使用用户模型登录和注册的目的。 因此,我尝试在我的所有者模型中使用用户模型,以便在附加字段中有效地利用这两种模型。 我尝试使用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')

我希望这会得到帮助,因为我完全被困在这里,也不知道如何解决这个问题。

你使用的术语是“我的django项目的迁移文件夹”(在上面的评论中),这是错误的——你项目中的每个应用都有自己的迁移文件夹。具体来说,您的“listings”应用程序中仍有一个迁移,它将您删除的一个迁移列为依赖项。

在查看和调试堆栈跟踪后,我终于解决了该问题。
我从与所有者模型有关系的列表应用程序中删除了迁移文件0001,然后当我运行makemigrations命令时,它没有给我任何上述错误或异常。

您是否删除了django_migrations表中的数据库行?否,我没有从数据库中删除任何行或数据。我所做的只是从django项目的迁移文件夹中删除0001和002迁移文件。是的,我从所有者应用程序迁移文件夹中删除了文件。在我的列表应用程序中,迁移文件夹下有0001个文件。
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