Django在根据models生成数据库表时报 __init__() missing 1 required positional argument 'on_d-阿里云开发者社区

开发者社区> 爱余星痕> 正文

Django在根据models生成数据库表时报 __init__() missing 1 required positional argument 'on_d

简介: 代码: from django.db import models class Blog(models.Model): name = models.
+关注继续查看

代码:

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
OceanBase数据库漫谈
从开发视角、运维视角、数据拆分漫谈OceanBase
24 0
上云第一课第一期部署MySQL数据库
主要讲述数据的部署以及使用
20 0
node+mysql+express接口开发数据库连接池
node+mysql+express接口开发数据库连接池
20 0
node+express controller
Node + Express Controller
16 0
教育培训机构使用阿里云无影桌面优缺点
配置灵活,GPU满足设计产品线,价格低廉,随开随用。
29 0
Node + Express + MySQL 接口开发完整案例
Node + Express + MySQL 接口开发完整案例
24 0
【mockito】单元测试之mockito简单使用
项目使用的是springmvc+mybatis 开发; mock包为 mockito-all;虽然也引用了powermock,但截至目前,还未使用到;如果使用到后续再补相关笔记。
17 0
工商银行实时大数据平台建设历程及展望
中国工商银行大数据平台负责人袁一在 FFA 2021 的分享
32 0
浅谈我对DDD领域驱动设计的理解
DDD的全称为Domain-driven Design,即领域驱动设计。下面我从领域、问题域、领域模型、设计、驱动这几个词语的含义和联系的角度去阐述DDD是如何融入到我们平时的软件开发初期阶段的。要理解什么是领域驱动设计,首先要理解什么是领域,什么是设计,还有驱动是什么意思,什么驱动什么。
13 0
ACP实战特训营RDS(DAY3)
要点记录 1. PolarDB的基本概念 1.1、对比单机数据库优势有哪些:简单易用、极致性能、降低成本、海量存储、安全可靠、快速弹性 1.2 、单机数据库容量瓶颈-单机数据库扩展困难-数据库使用成本过高-分布式数据库应用开发繁琐 2. PolarDB产品系列:集群版-单节点-历史库-多主架构 2.1、集群:一个集群包含一个主节点和多个读节点,最多16个节点,即一个主节点和15个只读节点 2.2、地域:是指物理的数据中心,一般情况下,PolarDB集群应该和ECS实例位于同一地域,以实现最高的访问性能
17 0
+关注
爱余星痕
工作11年,对流程引擎有较深认识
57
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载