Django中的Python社交身份验证,makemigrations检测到没有变化
Posted
技术标签:
【中文标题】Django中的Python社交身份验证,makemigrations检测到没有变化【英文标题】:Python social auth in Django, makemigrations detects no changes 【发布时间】:2015-06-19 05:28:22 【问题描述】:我正在按照文档在我的 django 项目中获取 python 社交身份验证 https://python-social-auth.readthedocs.org/en/latest/configuration/django.html
在我的 settings.py 中将 'social.apps.django_app.default',
添加到 INSTALLED_APPS 后,我运行以下命令:
python manage.py makemigrations
我明白了
No changes detected
这个命令不应该做点什么吗?因为没有这个,我无法迁移以创建身份验证所需的表。
编辑:
我也试过这个命令,结果还是一样
python manage.py makemigrations main
'main' 是我的应用程序的名称
【问题讨论】:
查看***.com/questions/24912173/… 所以我的情况略有不同,因为我的应用程序一直在 Django 1.7 上,从来没有在较低版本上。当我对模型进行更改时,makemigrations 也可以正常工作,只是在添加该应用程序进行社交身份验证后运行它时出现问题 【参考方案1】:到 Django
INSTALLED_APPS ['social.apps.Django_appConfig',]
【讨论】:
【参考方案2】:我的回答将涵盖一些基础知识,以便人们可以轻松理解这类错误。
让我澄清一些关于 Django 最新版本(从 1.7 到正在开发的版本)中迁移的基本术语。
在旧版本的 Django 中,当一个人必须在模型中进行更改(最终在数据库中)时,一个人必须使用 South
应用程序在数据库中应用更改而不影响旧数据库。
Django 开发者社区在 Django 1.7 和之后的版本中包含了这个南方应用程序,并且还提供了一些简单的命令来应用迁移。
当一个安装新应用程序(上述问题场景)或一个对现有模型进行更改并希望在数据库中应用更改时,必须告诉数据库他们想要进行哪些更改。为此,必须进行迁移,下面是命令。
$ python manage.py makemigrations app_name
或者如果是初始的则不需要指定app_name,它将考虑所有应用程序。
此命令将生成迁移文件,其中将包括数据库的指令,以创建哪些表,该表的属性是什么,表之间的关系是什么,当前表的变化等等等等。
现在必须运行以下命令才能将所有更改应用到数据库中。
$ python manage.py migrate app_name
或者如果是初始的则不需要指定app_name。
如有任何问题请拍下,如有任何问题,请查看 Django 官方documentation on migrations 了解更多信息。
【讨论】:
【参考方案3】:今天我遇到了这个问题。错误在于文档本身。
你应该直接运行$ python manage.py migrate
。它在数据库中创建表。
所有老教程都用makemigrations
,我想是django早期版本用的。
【讨论】:
这对我有用。我想这意味着迁移已经存在于 python-social-auth 中。【参考方案4】:可能的原因是您的项目尚未使用任何“社交”应用程序的数据库模型。在您的urls.py
中添加一个 URL,将其链接到“社交”网址。
【讨论】:
以上是关于Django中的Python社交身份验证,makemigrations检测到没有变化的主要内容,如果未能解决你的问题,请参考以下文章
用于 Spotify 的 Python 社交身份验证:重定向缺少“状态”参数
用于登录 Facebook 的 Python 社交身份验证无法在生产服务器上运行
django-rest-auth vs djoser,哪一个用于社交身份验证?
Django REST to React - 无需密码即可获取社交身份验证令牌