'auth' 应用程序中缺少 django heroku 0010_alter

我试图让用户在我托管在 heroku 上的 django 网站上使用“电子邮件 - 密码”组合而不是“用户名 - 密码”登录


我已经使用了本教程,它在我的计算机上运行良好(包括迁移)但是当我尝试迁移我的在线安装时,我收到一条错误消息:


"django.db.migrations.exceptions.NodeNotFoundError: Migration account.0001_initial dependencies reference nonexistent parent node ('auth', '0010_alter_group_name_max_length')"


迁移文件如下所示:


class Migration(migrations.Migration):


    initial = True


    dependencies = [

        ('auth', '0010_alter_group_name_max_length'),

    ]


    operations = [

        migrations.CreateModel(

            name='User',

            fields=[

                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),

                ('password', models.CharField(max_length=128, verbose_name='password')),

                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),

                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),

]


如您所见,我的文件中有这一行,这使我的迁移需要在auth文件夹中进行迁移(我认为这是 django 框架的 auth 文件夹


('auth','0010_alter_group_name_max_length'),

在网上我发现它是django项目git中的一个现有文件


也许这是由django-heroku我必须安装的pip 包引起的,以使该项目与 heroku 服务器兼容?


我不知道如何使这个项目工作。我尝试删除迁移文件中的依赖项,但在这种情况下出现另一个错误:


File "/app/.heroku/python/lib/python3.6/site-packages/django/db/models/fields/related.py", line 604, in resolve_related_fields

    raise ValueError('Related model %r cannot be resolved' % self.remote_field.model)

ValueError: Related model 'auth.Group' cannot be resolved

谢谢你的帮助


猛跑小猪
浏览 233回答 2
2回答

元芳怎么了

看起来您在本地安装了 Django 的预发布版本,但在 Heroku 上安装了稳定版本。锁定您的依赖项以确保您在任何地方运行完全相同的版本是一个非常好的主意。这个想法已经融入了Pipfile、Pipenv和pip- tools 等规范和工具,以及其他语言的流行依赖管理器中。尝试跑步pip freeze > requirements.txt这应该为您的依赖项添加紧密版本,并且还列出间接依赖项。提交更改并推送到 Heroku。您可能需要考虑查看我上面链接的工具。Pipenv 和 pip-tools 都可以与 Heroku 配合使用,第一个通过本机支持,第二个通过requirements.txt用作其锁定文件。

慕姐4208626

正如 Chris 在评论中注意到的,我在本地和在线都有不同版本的 Django,Django 的本地版本是 Django==2.2.dev20190101154022,在线版本是 Django==2.1.7,它有不同的迁移文件(0009_alter_user_last_name_max_length在 Django 2.1.7 和0010_alter_group_name_max_length2.2.dev20190101154022)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python