DjangoGirls发生的错误总结
在推进DjangoGirls的过程中出现的错误。
在按照Django Girls教程进行操作时,我总结了因规格变化等原因而出现的错误。这是我个人的备忘录。
环境
Python:3.6.5
Django:2.1.1
引用来源
由于Django的include规范发生了变化而遇到了困难,因此我留下了备忘录。
自Django2.0起,on_delete的使用方式变为必需。
在将Django应用部署到Heroku时,解决错误的方法:whitenoise编写。
错误1: on_delete
在Django Girls教程的Django models部分中,执行以下操作以传达模型的更改时,
(myvenv) ~/djangogirls$ python manage.py makemigrations blog
TypeError: __init__() missing 1 required positional argument: 'on_delete'
据我所查Django在版本2之后似乎要求在blog/models.py中的ForeignKey参数中传递on_delete。
解决方案
更正前
class Post(models.Model):
author = models.ForeignKey('auth.User')
更正之後
class Post(models.Model):
author = models.ForeignKey('auth.User',on_delete=models.CASCADE)
只需将”on_delete=models.CASCADE”传递给因素就可以了!
错误2:由于whitenoise规格的变化导致的错误。
在部署过程的最后阶段,
command line
(myvenv) ~/djangogirls$ python manage.py runserver
当输入“と”时
command line
ImportError:
Your WhiteNoise configuration is incompatible with WhiteNoise v4.0
This can be fixed by following the upgrade instructions at:
http://whitenoise.evans.io/en/stable/changelog.html#v4-0
发生了一个被称为“とかいうエラー”的错误。查了很多资料后发现,正在进行Django Girls Tutorial时出现。
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(application)
有一個場景描述說,發生Whitenoise更新後引起錯誤的情況。
处理方案
from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(application)
首先删除上面的代码。然后,修改’mysite/setting.py’文件。
将setting.py文件中的MIDDLEWARE部分修改为…。
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
在第一行进行了更改。在第二行添加了’whitenoise.middleware.WhiteNoiseMiddleware’。