在我的Mac中,我使用PyCharm很好地运行我的Django项目。
但在远程服务器中,我使用相同的命令来运行我的项目:
python3 manage.py runserver 8001
出现了问题:
File "/var/www/html/Qiyun02//user_admin_productmanage_cloudserver/models.py", line 3, in <module>
from xxx.qiyun_admin_productconfig_cloudserver.models import (
File "/var/www/html/Qiyun02/qiyun_admin_productconfig_cloudserver/models.py", line 109, in <module>
class Disk(models.Model):
File "/var/www/html/Qiyun02/qiyun_admin_productconfig_cloudserver/models.py", line 110, in Disk
diskEssenceType = models.ForeignKey(to=DiskEssenceType, related_name='disks') # "SAS", "SSD" and so on
TypeError: __init__() missing 1 required positional argument: 'on_delete'
我知道on_delete
错误意味着。但我的意思是,在我的Mac中为什么没有显示错误?这是否与django版本有关?
我的本地Mac Django版本为1.11.2
。
远程服务器CentOS7.2版本为python-django-1.8.14-1.el7.noarch
修改
拜托,我知道那里的on_delete
错误,我的意思是,在我的Mac中,没有提醒,为什么我复制到CentOS7.2远程服务器有这个问题?这是否是由django版本引起的?
编辑-2
我也将远程服务器django版本升级到1.11.2。但仍然有同样的错误。
编辑-3
来自document:
多对一的关系。需要两个位置参数:与模型相关的类和on_delete选项。 (实际上并不需要on_delete,但是不提供它会给出弃用警告。在Django 2.0中将需要它。)
你知道,我的django版本现在在我的CentOS7.2远程服务器上是1.11.2,为什么会出现问题呢?
编辑-4
我没有虚拟环境。
我使用bellow命令:
python3 manage.py shell
得到同样的问题。
编辑-5
最后,我发现我的python3使用了django 2.0。这就是问题所在。
python3 -m django --version
2.0
答案 0 :(得分:1)
根据文档,您看到的错误仅发生在Django 2.0上。请使用shell
检查您的Django版本python manage.py shell
>>> import django
>>> django.VERSION
还要考虑使用虚拟环境。这就是应该如何建立一个项目。