根据图书《python编程从入门到实践》来操作,修改完models.py后,执行命令python manage.py makemigrations learning_logs,就报错,求大神指点。
model.py 代码
from django.db import models
class Topic(models.Model):
"""用户学习的主题"""
text = models.CharField(max_length = 200)
date_added = models.DateTimeField(auto_now_add = True)
def __str__ (self):
"""返回模型的字符串表示"""
return self.text
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] + "..."
manage.py 代码如下
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "learning_log.settings")
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
在迁移模型Entry时,运行代码python manage.py makemigrations learning_logs,报错
TypeError: __init__() missing 1 required positional argument: 'on_delete'
topic = models.ForeignKey('Topic', on_delete=models.CASCADE),成功运行。