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模型三的主要内容,如果未能解决你的问题,请参考以下文章