django 在生成数据库表时报错: TypeError: __init__() missing 1 required positional argument: ‘on_delete’ 解决办法

版本:python: 3.6.4、django: 2.0

 

models.py 代码如下:

# coding: utf-8
from django.db import models
from django.contrib.auth.models import User
# Create your models here.

class Category(models.Model):
    name = models.CharField(max_length=100)
class Tag(models.Model):
    name = models.CharField(max_length=100)
class Post(models.Model):
    title = models.CharField(max_length=70)
    body = models.TextField()
    created_time = models.DateTimeField()
    modified_time = models.DateTimeField()
    excerpt = models.CharField(max_length=200, blank=True)
    category = models.ForeignKey(Category,on_delete=models.CASCADE)
    tags = models.ManyToManyField(Tag, blank=True)
    author = models.ForeignKey(User,on_delete=models.CASCADE)

 

报错误信息如下图:

TypeError: __init__() missing 1 required positional argument: 'on_delete'

TypeError: __init__() missing 1 required positional argument: 'on_delete'

中文翻译

TypeError:__init __()缺少1个必需的位置参数:'on_delete'

 

解决办法:

 

外键值的后面加上 on_delete=models.CASCADE

category = models.ForeignKey(Category)
author = models.ForeignKey(User)

改为

category = models.ForeignKey(Category,on_delete=models.CASCADE)
author = models.ForeignKey(User,on_delete=models.CASCADE)

 

再次执行 ,成功,如下图:

TypeError: __init__() missing 1 required positional argument: 'on_delete' 解决办法

    A+
发布日期:2018年02月26日 13:39:45  所属分类:Django
最后更新时间:2018-03-20 11:56:42
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
PHP运行环境 wamp lamp lnmp 安装 配置 搭建
PHP运行环境 wamp lamp lnmp 安装 配置 搭建
  • ¥ 99.9元
  • 市场价:299元
Microsoft 全家桶 “激活码/产品密钥”永久
Microsoft 全家桶 “激活码/产品密钥”永久
  • ¥ 29.99元
  • 市场价:888元
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 49.9元
  • 市场价:99.9元
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
刷流量 刷人气 刷点击 刷收藏 刷APP关键词
  • ¥ 1.0元
  • 市场价:9.9元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: