我有兩個模型:Category和Item。項目可以有2個或更多的類別,所以我需要從我創建的項目的類別(可能是一對多)有一個關係。但是,我還需要獲取與某個類別(或類別)相關的項目,可能是這樣的: http://example.com/api/items?category_id=5
如何做對象之間的正確關係Django
任何人都可以建議我該如何做到這一點?謝謝。
我有兩個模型:Category和Item。項目可以有2個或更多的類別,所以我需要從我創建的項目的類別(可能是一對多)有一個關係。但是,我還需要獲取與某個類別(或類別)相關的項目,可能是這樣的: http://example.com/api/items?category_id=5
如何做對象之間的正確關係Django
任何人都可以建議我該如何做到這一點?謝謝。
我相信,你必須爲
class Category:
.....
class Item:
category = ManytoMany relation to Category
項目和類別之間的多對多關係,在這種情況下,可以提取相關類別項如下:
假設你有分類對象c1
c1.item_set.all()
這裏c1 = Category.objects.get(id=5)
因爲一個項目可在多個類別,並且還,一類可能有Category
和Item
模型之間的多個項目必須是Many-to-Many
關係,你可以定義如下:
class Category(models.Model):
name = models.CharField(max_length=30)
.....
和
class item(models.Model):
....
categories = modles.ManyToManyField(Category)
在docs中,您可以看到可以使用Python API工具執行的更多操作細節。
我建議的最佳做法是,在項目表中添加多對多的類別表關係。
例如:
class Category(models.Model):
# Write here your fields name
class Item(models.Model):
categories = models.ManyToManyField(Category)