1. 程式人生 > 其它 >django 一對多關係

django 一對多關係

技術標籤:DjangoPythonpythondjango

前幾篇文章在記錄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篇文章)。

未完成,待續!