gpt4 book ai didi

django - Django 1.7.1 的迁移错误

转载 作者:行者123 更新时间:2023-12-04 13:11:10 25 4
gpt4 key购买 nike

在引入新应用程序 (django-allauth) 后执行迁移时出现错误。我不确定还可以尝试什么来修复错误。我已经尝试了一些东西,但不幸的是它们似乎没有帮助。

运行时 manage.py 迁移 :

File "D:\Python27\Lib\site-packages\django\db\migrations\state.py", line 71, 
in render raise
InvalidBasesError("Cannot resolve bases for %r\nThis can happen if you are inheriting
models from an app with migrations (e.g. contrib.auth)\n in an app with no migrations;
see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more" %
new_unrendered_models)
django.db.migrations.state.InvalidBasesError: Cannot resolve bases for
[<ModelState: 'blog.BlogPage'>, <ModelState: 'blog.BlogIndexPage'>]
This can happen if you are inheriting models from an app with migrations
(e.g. contrib.auth) in an app with no migrations; see
https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more

模型.py
    from django.db import models
from wagtail.wagtailcore.models import Page, Orderable
from wagtail.wagtailcore.fields import RichTextField
from wagtail.wagtailadmin.edit_handlers import FieldPanel ,MultiFieldPanel,InlinePanel, PageChooserPanel
from modelcluster.fields import ParentalKey

class BlogPage(Page):
body = RichTextField()
date = models.DateField("Post date")
indexed_fields = ('body', )
search_name = "Blog Page"

BlogPage.content_panels = [
FieldPanel('title', classname="full title"),
FieldPanel('date'),
FieldPanel('body', classname="full"),
]


class LinkFields(models.Model):
link_page = models.ForeignKey(
'wagtailcore.Page',
null=True,
blank=True,
related_name='+'
)

panels = [
PageChooserPanel('link_page'),
]

class Meta:
abstract = True

class RelatedLink(LinkFields):
title = models.CharField(max_length=255, help_text="Link title")
panels = [
FieldPanel('title'),
MultiFieldPanel(LinkFields.panels, "Link"),
]

class Meta:
abstract = True


class BlogIndexPageRelatedLink(Orderable, RelatedLink):
page = ParentalKey('blog.BlogIndexPage', related_name='related_links')

class BlogIndexPage(Page):
intro = models.CharField(max_length=256)
indexed_fields = ('body', )
search_name = "Blog Index Page"

BlogIndexPage.content_panels = [
FieldPanel('title', classname="full title"),
FieldPanel('intro', classname="full"),
InlinePanel(BlogIndexPage, 'related_links', label="Related links"),
]

到目前为止我尝试过的:
  • 遵循此处的建议:https://stackoverflow.com/a/25858659然而,这对我来说并没有改变任何事情。
  • 我也试过 https://code.djangoproject.com/ticket/22051#comment:12没有成功。

  • 注: makemigrations 运行(未检测到更改)但迁移失败。

    平台设置 :这是目前在 Windows 机器上的 Django 1.7.1 上。 django-allauth 在此框上的其他应用程序中成功运行。

    有没有人遇到过这个问题,有没有解决办法?

    提前致谢

    ---发出以下命令序列:
         (env) D:\git\rebootv2.1\blog>python manage.py migrate
    D:\Python27\Lib\site-packages\treebeard\mp_tree.py:102: RemovedInDjango18Warning: `MP_NodeManager.get_query_set` method
    should be renamed `get_queryset`.
    class MP_NodeManager(models.Manager):

    Operations to perform:
    Synchronize unmigrated apps: account, allauth, modelcluster, blog, compressor, facebook, wagtailsnippets, socialaccount
    Apply all migrations: core, wagtailusers, wagtailembeds, wagtailadmin, sessions, admin, wagtailcore, sites, auth, contenttypes, wagtaildocs, taggit, wagtailsearch, wagtailforms, wagtailredirects, wagtailimages
    Synchronizing apps without migrations:
    Creating tables...
    Installing custom SQL...
    Installing indexes...
    Running migrations:
    Applying sites.0001_initial...Traceback (most recent call last):
    File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
    File "D:\Python27\Lib\site-packages\django\core\management\__init__.py", line 385, in execute_from_command_line
    utility.execute()
    File "D:\Python27\Lib\site-packages\django\core\management\__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "D:\Python27\Lib\site-packages\django\core\management\base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
    File "D:\Python27\Lib\site-packages\django\core\management\base.py", line 338, in execute
    output = self.handle(*args, **options)
    File "D:\Python27\Lib\site-packages\django\core\management\commands\migrate.py", line 160, in handle
    executor.migrate(targets, plan, fake=options.get("fake", False))
    File "D:\Python27\Lib\site-packages\django\db\migrations\executor.py", line 63, in migrate
    self.apply_migration(migration, fake=fake)
    File "D:\Python27\Lib\site-packages\django\db\migrations\executor.py", line 91, in apply_migration
    if self.detect_soft_applied(migration):
    File "D:\Python27\Lib\site-packages\django\db\migrations\executor.py", line 135, in detect_soft_applied
    apps = project_state.render()
    File "D:\Python27\Lib\site-packages\django\db\migrations\state.py", line 71, in render raise InvalidBasesError("Cannot resolve bases for %r\nThis can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)\n in an app with no migrations; see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more" % new_unrendered_models)
    django.db.migrations.state.InvalidBasesError: Cannot resolve bases for [<ModelState: 'blog.BlogPage'>, <ModelState: 'blog.BlogIndexPage'>]
    This can happen if you are inheriting models from an app with migrations (e.g. contrib.auth)
    in an app with no migrations; see https://docs.djangoproject.com/en/1.7/topics/migrations/#dependencies for more

    (env) D:\git\rebootv2.1\blog>python manage.py makemigrations
    D:\Python27\Lib\site-packages\treebeard\mp_tree.py:102: RemovedInDjango18Warning: `MP_NodeManager.get_query_set` method
    should be renamed `get_queryset`.
    class MP_NodeManager(models.Manager):

    No changes detected

    [为我解决了什么问题] - 最终成为排序问题,我猜....
  • 在 settings.py
  • 中禁用 INSTALLED_APPS 中的所有 allauth 应用程序
  • 运行 manage.py migrate 启用所有 allauth 应用程序并禁用
    为项目生成的 wagtail 应用程序(例如博客)
  • 再次运行 manage.py migrate 在 INSTALLED_APPS 中启用两组应用程序
  • 再次运行 manage.py migrate

  • 现在似乎很幸福。

    希望这可以帮助某人并节省他们一些时间!

    最佳答案

    我猜最终是排序问题....

  • 在 settings.py
  • 中禁用 INSTALLED_APPS 中的所有 allauth 应用程序
  • 运行 manage.py migrate 启用所有 allauth 应用程序并禁用为项目生成的 wagtail 应用程序(例如博客)
  • 再次运行 manage.py migrate 在 INSTALLED_APPS 中启用两组应用程序
  • 再次运行 manage.py migrate

  • 现在似乎很幸福。

    希望这可以帮助某人并节省他们一些时间!

    关于django - Django 1.7.1 的迁移错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27261030/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com