Django多表操作關系創建


 多表操作:以book,publish, author為例

  一對多:一旦確定一對多的關系,在多的一方(book)創建關聯字段publish_id

  多對多:一旦確定多對多的關系,創建第三張表,比如Author2Book表,字段分別是id,Book_id, Author_id

  一對一:兩張表其實就是一張表,在任意一張表創建關聯字段

 

from django.db import models

# Create your models here.

#不用創建ID,Django自動創建主鍵
class Book(models.Model): title=models.CharField(max_length=32,unique=True) price=models.DecimalField(max_digits=8,decimal_places=2,null=True)# 999999.99 pub_date=models.DateField() publish=models.ForeignKey(to="Publish",to_field="id",on_delete=models.CASCADE)
django2.0需要寫cascade authors
=models.ManyToManyField(to="Author"
)
  這里authors只是屬性,不是字段,為了創建多對多關聯表
def __str__(self):
return self.title class Publish(models.Model): name=models.CharField(max_length=32) email=models.CharField(max_length=32) addr=models.CharField(max_length=32) class Author(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() 這個不用# ad=models.ForeignKey(to="AuthorDetail",to_field="id",on_delete=models.CASCADE,unique=True) ad=models.OneToOneField(to="AuthorDetail",to_field="id",on_delete=models.CASCADE,)
  用這個
class AuthorDetail(models.Model): gf=models.CharField(max_length=32) tel=models.CharField(max_length=32)

然后使用tools里面的run manage.py task 輸入makemigrations和migrate生成數據庫

就創建完多對多表啦~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM