为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2021-12-21 17:31:47
我试图让用户在我托管在 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谢谢你的帮助
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

看起来您在本地安装了 Django 的预发布版本,但在 Heroku 上安装了稳定版本。

锁定您的依赖项以确保您在任何地方运行完全相同的版本是一个非常好的主意。这个想法已经融入了PipfilePipenvpip- tools 等规范和工具,以及其他语言的流行依赖管理器中。

尝试跑步

pip freeze > requirements.txt

这应该为您的依赖项添加紧密版本,并且还列出间接依赖项。提交更改并推送到 Heroku。

您可能需要考虑查看我上面链接的工具。Pipenv 和 pip-tools 都可以与 Heroku 配合使用,第一个通过本机支持,第二个通过requirements.txt用作其锁定文件。


查看完整回答
反对 回复 2021-12-21
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

正如 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)


查看完整回答
反对 回复 2021-12-21
  • 2 回答
  • 0 关注
  • 232 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信