《Python 入门到实践》Django创建项目中遇到的问题

跟着《python编程:从入门到实践》做第三个项目的时候,出现的问题:

首先Django安装失败,下载一半就失败了,解决方法为:Django安装失败 。换个下载源,很快就下载成功了。使用pip install -i https://pypi.douban.com/simple django成功!
然后使用django-admin.py startproject learning_log .命令无法创建项目,并且没有任何报错,找到了解决方法,虽然不明白原因:Django无法创建项目。在虚拟环境\Scripts 路径里有django-admin.py文件,将它复制到和ll_env文件夹一个目录下,再使用创建项目命令就可以创建成功了!
在创建应用程序时,需要保持前面打开的终端窗口运行着runserver,再打开一个新的终端窗口,切换到manager.py的目录,激活虚拟环境,使用source ll_env/bin/activate命令,提示错误:source不是内部或外部命令。解决方法:在ll_env文件夹里找到activate文件的具体位置,不使用source,直接用具体路径,就可以进入虚拟环境了!即:项目所在文件夹\ll_env\Scripts\activate,回车,成功!
添加一个新模型Entry新模型,再次使用python manage.py makemigrations learning_logs语句迁移数据库时报错:TypeError: init() missing 1 required positional argument :‘on_delete’,按照提示位置加上‘on_delete’参数,就可以成功地迁移数据库了。找到的解决办法是:django数据库迁移报错。
源代码块是:
 

class Entry(models.Model):
    topic = models.ForeignKey(Topic)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        return self.text[:50] + '...'

修改之后:

class Entry(models.Model):
    topic = models.ForeignKey(Topic, on_delete=models.CASCADE)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        return self.text[:50] + '...'

 

你可能感兴趣的:(python,入门到实践学习)