Django-16-一对一

2020-04-08  本文已影响0人  西海岸虎皮猫大人

1.修改数据库字段,重新迁移

a.删除迁移文件
b.删除django_migrations表中的记录
c.删除原有的表

2.字段常用属性

null=True, 可为空
blank=True, 表单字段可以为空

3.一对一关系

场景:学生和学生证表

class Student(models.Model):
    sno = models.AutoField(primary_key=True)
    sname = models.CharField(max_length=30)
    
    def __unicode__(self):
        return u'Student:%s'%self.sname


class Scard(models.Model):
    # 一对一字段, 主键, 级联删除(默认就是级联删除)
    student = models.OneToOneField(Student, primary_key=True, on_delete=models.CASCADE)
    major = models.CharField(max_length=30)
    
    def __unicode__(self):
        return u'Scard:%s'%self.major

迁移无需删除迁移文件

4.插入数据

from stu.models import *
stu = Student(sname='zhangsan')
stu.save()
sc = Scard(student=stu, major='xinxi')
sc.save()

# 方式2
stu1 = Student.objects.create(sname='lisi')
Scard.objects.create(student=stu1, major='math

5.查询数据

Student.objects.first().scard
Scard.objects.first().student
上一篇 下一篇

猜你喜欢

热点阅读