[JAVA] django 在生成数据库表时报错: TypeError: __init__() missing 1 required positi...

4125 0
黑夜隐士 2021-8-3 11:34:12 | 显示全部楼层 |阅读模式
版本:python: 3.6.4、django: 2.0
models.py 代码如下:
  1. # coding: utf-8
  2. from django.db import models
  3. from django.contrib.auth.models import User
  4. # Create your models here.

  5. class Category(models.Model):
  6.     name = models.CharField(max_length=100)
  7. class Tag(models.Model):
  8.     name = models.CharField(max_length=100)
  9. class Post(models.Model):
  10.     title = models.CharField(max_length=70)
  11.     body = models.TextField()
  12.     created_time = models.DateTimeField()
  13.     modified_time = models.DateTimeField()
  14.     excerpt = models.CharField(max_length=200, blank=True)
  15.     category = models.ForeignKey(Category,on_delete=models.CASCADE)
  16.     tags = models.ManyToManyField(Tag, blank=True)
  17.     author = models.ForeignKey(User,on_delete=models.CASCADE)
复制代码
报错误信息如下图:
  1. TypeError: __init__() missing 1 required positional argument: 'on_delete'
复制代码
中文翻译
  1. TypeError:__init __()缺少1个必需的位置参数:'on_delete'
复制代码
解决办法:

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

  1. category = models.ForeignKey(Category)
  2. author = models.ForeignKey(User)
复制代码

改为

  1. category = models.ForeignKey(Category,on_delete=models.CASCADE)
  2. author = models.ForeignKey(User,on_delete=models.CASCADE)
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行