• 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'

     
  • 相关阅读:
    蛤玮学计网 -- 简单的判断ip
    修路方案 Kruskal 之 次小生成树
    单词拼接 ----- 深搜
    KMP 算法
    城市平乱 ---- Dijkstra
    最少换乘
    ubuntu-vnc
    sshpass----------------sshfs--sftp(sublime)
    snmp ubuntu/centos--
    erlang ssl
  • 原文地址:https://www.cnblogs.com/huny/p/13167778.html
Copyright © 2020-2023  润新知