您的位置:首页 > 编程语言 > Go语言

Django ORM 关系管理对象的创建

2020-01-15 09:14 1226 查看
  • 第一种方法自动创建第三张表
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=32)
pub = models.ForeignKey('Publisher', on_delete=models.CASCADE)

class Author(models.Model):
name = models.CharField(max_length=32)
books = models.ManyToManyField('Book')  # 不会生成字段  生成第三张表 可以set等方法
  • 第二种方法手动创建第三张表
class Book(models.Model):
title = models.CharField(max_length=32, unique=True)

class Author(models.Model):
name = models.CharField(max_length=32)

class AuthorBook(models.Model):
book = models.ForeignKey('Book',on_delete=models.CASCADE)
author = models.ForeignKey('Author',on_delete=models.CASCADE)
date = models.CharField(max_length=32)
# 第三张表不能够使用 set方法
  • 第三种半自动创建
class Book(models.Model):
title = models.CharField(max_length=32, unique=True)

class Author(models.Model):
name = models.CharField(max_length=32)
books = models.ManyToManyField('Book',through='AuthorBook')  # 只用django提供的查询方法  不用创建表 用用户创建的表AuthorBook

class AuthorBook(models.Model):
book = models.ForeignKey('Book',on_delete=models.CASCADE)
author = models.ForeignKey('Author',on_delete=models.CASCADE)
date = models.CharField(max_length=32)

class Book(models.Model):
title = models.CharField(max_length=32, unique=True)

class Author(models.Model):
name = models.CharField(max_length=32)
books = models.ManyToManyField('Book',through='AuthorBook',through_fields=['author','book'])  # 只用django提供的查询方法  不用创建表 用用户创建的表AuthorBook

class AuthorBook(models.Model):
book = models.ForeignKey('Book',on_delete=models.CASCADE,null=True)
author = models.ForeignKey('Author',on_delete=models.CASCADE,related_name='x1',null=True)
tuiianren = models.ForeignKey('Author',on_delete=models.CASCADE,related_name='x2',null=True)
date = models.CharField(max_length=32)
  • 点赞
  • 收藏
  • 分享
  • 文章举报
Zh某某人 发布了5 篇原创文章 · 获赞 0 · 访问量 84 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: