簡體   English   中英

Django:一對多關系

[英]Django : One to many relationship

我有一個關於對象建模的問題。 Let's say we have a one to many relationship where an object A instance could have 0 to many linked objects B whereas object B could be linked to one and only one object A (note here object B cannot be created without being linked to an object B )。 So far I have added a foreign key to object B model, when adding that object I should select an Object A, so far so good. 我現在的問題是我是否還必須在數據庫級別將 object B 添加到 object A model 中? 還是我應該通過創建嵌套 API 在 API 級別上執行此操作? 因此,獲得 object B 將是這樣的:

get : http://localhost/api/objectA/objectB

我希望我清楚地解釋了我的問題,但總而言之,我不確定添加外鍵是否代表 a: 0.n---->1.1 就足夠了。

我已經很久沒有設計數據庫了,我使用的是非常古老的方法嗎?

謝謝

我現在的問題是我是否還必須在數據庫級別將 object B 添加到 object A model 中?

沒有 如果您構建了一個類似ForeignKey的關系,您可以讓 Django 反向查詢。 因此,如果您有兩個模型:

class A(models.Model):
    pass

class B(models.Model):
    a = models.ForeignKey(A, on_delete=models.CASCADE)

然后您可以通過以下方式獲取屬於某個A object somea的所有B對象:

somea.b_set.all()

您可以通過設置related_name=…參數 [Django-doc]來反向重命名關系。 因此,您可以將關系指定為:

class A(models.Model):
    pass

class B(models.Model):
    a = models.ForeignKey(
        A,
        related_name='bs',
        on_delete=models.CASCADE
    )

然后查詢:

somea.bs.all()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM