django模型三

Posted ivy-blogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django模型三相关的知识,希望对你有一定的参考价值。

表关系的实现

  •  一对一
    •  
       1 from django.db import models
       2 
       3 # Create your models here.
       4 
       5 class Account(models.Model):
       6     username = models.CharField(max_length=20)
       7     password = models.CharField(max_length=50)
       8     phonenum = models.CharField(max_length=20, default=‘‘)
       9     c_time = models.DateTimeField(auto_now_add=True,)  # 创建时间
      10 
      11 
      12 class Detail(models.Model):
      13     num = models.CharField(max_length=10, default=‘‘)
      14     hobby = models.CharField(max_length=10, default=‘‘)
      15     account = models.OneToOneField(Account, on_delete=models.CASCADE)

      在对应表里面新加字段,使用models.OnToOneField方法,第一个参数接收对应表的类的字符串,第二个设置关联,当被关联的表被删除的时候,该表也会被删除

    • 使用:
      • 用Detail查询username  
      • Detail.objects.filter(num="3").first().account.username
  • 一对多
    •  1 from django.db import models
       2 
       3 # Create your models here.
       4 
       5 class Account(models.Model):
       6     username = models.CharField(max_length=20)
       7     password = models.CharField(max_length=50)
       8     phonenum = models.CharField(max_length=20, default=‘‘)
       9     c_time = models.DateTimeField(auto_now_add=True,)  # 创建时间
      10     many = models.ForeignKey(Many, on_delete=models.SET_NULL, null=True)
      11 
      12 
      13 class Detail(models.Model):
      14     num = models.CharField(max_length=10, default=‘‘)
      15     hobby = models.CharField(max_length=10, default=‘‘)
      16     account = models.OneToOneField(Account, on_delete=models.CASCADE)
      17 
      18 
      19 class Many(models.Model):
      20     num = models.CharField(max_length=10, default=‘‘)
      21     hobby = models.CharField(max_length=10, default=‘‘)

      在对应的表里设置主键(model.ForeignKey)

以上是关于django模型三的主要内容,如果未能解决你的问题,请参考以下文章

[置顶]Django框架

Django中模型

Django模型系统

Django中模型

Django模型

Django模型