Django在根据models生成数据库表时报 __init__() missing 1 required positional argum...
代码: from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __unicode__(self): # __str__ on Python 3 return self.name class Author(models.Model): name = models.CharField(max_length=50) email = models.EmailField() def __unicode__(self): # __str__ on Python 3 return self.name class Entry(models.Model): blog = models.ForeignKey(Blog) headline = models.CharField(max_length=255) body_text = models.TextField() pub_date = models.DateField() mod_date = models.DateField() authors = models.ManyToManyField(Author) n_comments = models.IntegerField() n_pingbacks = models.IntegerField() rating = models.IntegerField() def __unicode__(self): # __str__ on Python 3 return self.headline 执行报错如下: Traceback (most recent call last): File "manage.py", line 15, in <module> execute_from_command_line(sys.argv) File "E:\diango\venv\lib\site-packages\django\core\management\__init__.py", line 371, in execute_from_command_line utility.execute() File "E:\diango\venv\lib\site-packages\django\core\management\__init__.py", line 347, in execute django.setup() File "E:\diango\venv\lib\site-packages\django\__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "E:\diango\venv\lib\site-packages\django\apps\registry.py", line 112, in populate app_config.import_models() File "E:\diango\venv\lib\site-packages\django\apps\config.py", line 198, in import_models self.models_module = import_module(models_module_name) File "E:\Program Files\Anaconda3\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 673, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 665, in exec_module File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed File "E:\diango\blog\models.py", line 24, in <module> class Entry(models.Model): File "E:\diango\blog\models.py", line 25, in Entry blog = models.ForeignKey(Blog) TypeError: __init__() missing 1 required positional argument: 'on_delete' 解决办法: 将有ForeignKey的代码改为: blog = models.ForeignKey(Blog,on_delete=models.CASCADE,) 即在外键值的后面加上 on_delete=models.CASCADE