zoukankan      html  css  js  c++  java
  • Django踩坑记录1

    from django.db import models
    
    # Create your models here.
    class Event(models.Model):
        name = models.CharField(max_length=100)         #发布会标题
        limit = models.IntegerField()                   #参加人数
        status = models.BooleanField()                  #状态
        address = models.CharField(max_length=200)      #地址
        start_time = models.DateTimeField('events time')#发布会时间
        create_time = models.DateTimeField(auto_now=True)#创建时间
    
        def __str__(self):
            return self.name
    
    class Guest(models.Model):
        event = models.ForeignKey(Event)                    #关联发布会
        realname = models.CharField(max_length=64)          #姓名
        phone = models.CharField(max_length=16)             #手机号
        email = models.EmailField()                         #邮箱
        sign = models.BooleanField()                        #签到状态
        create_time = models.DateTimeField(auto_now=True)   #创建时间
    
        class Meta:
            unique_together = ("event","phone")
    
        def __str__(self):
            return self.realname

    报错如下:

    解决办法:

    将代码改为:

    event = models.ForeignKey(Event,on_delete=models.CASCADE,)即在外键值的后面加上 on_delete=models.CASCADE

    原因分析:

    在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,不然会报错:
    TypeError: __init__() missing 1 required positional argument: 'on_delete'

     
  • 相关阅读:
    使用Junit等工具进行单元测试
    软件工程学习、问题
    贪吃蛇
    使用Junit工具进行单元测试
    两人组
    软件工程的理解
    使用工具进行单元测试
    对软件工程的理解
    单元测试
    我对软件工程的理解
  • 原文地址:https://www.cnblogs.com/huny/p/13167778.html
Copyright © 2011-2022 走看看