django 一對多關係
阿新 • • 發佈:2020-12-24
前幾篇文章在記錄ForeignKey時,其實已經實現一對多的關係,這篇文章來詳細記錄下。
實現一對多關係就是通過 ForeignKey來實現:
1、首先通過ForeignKey來關聯User表中的資料(下邊案例我們關聯的是id為1的資料,一個user使用者(可以把user理解為一個作者)可以對應多篇文章);
2、第一次關聯完之後,第二次我們想再次關聯User表中id為1的資料時,應該:把User表中id為1的資料先取出來,然後再次關聯,詳細程式碼如下;
# 模型 class User(models.Model): username = models.CharField(max_length=50) password = models.CharField(max_length=50) class Meta: db_table = 'User' class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() author = models.ForeignKey('User', on_delete=models.CASCADE) class Meta: db_table = 'Article'
def index(res):
# 第一次關聯
user = User(username='lxc', password='123456')
user.save()
article = Article(title='測試標題', content='測試內容')
article.author = user
article.save()
return 'success'
def index(res): # 第二次關聯,直接把User表中 id為1的資料取出,然後再次關聯 user = User.objects.get(pk=1) article = Article(title='測試1', content='測試內容1') article.author = user article.save() return 'success'
效果如下:
這樣就形成一個一對多的關係(User表中id為1的資料,關聯了2篇文章)。
未完成,待續!