2017-05-26 55 views
0

我有兩個模型:Category和Item。項目可以有2個或更多的類別,所以我需要從我創建的項目的類別(可能是一對多)有一個關係。但是,我還需要獲取與某個類別(或類別)相關的項目,可能是這樣的: http://example.com/api/items?category_id=5如何做對象之間的正確關係Django

任何人都可以建議我該如何做到這一點?謝謝。

回答

1

我相信,你必須爲

class Category: 
    ..... 

class Item: 
    category = ManytoMany relation to Category 

項目和類別之間的多對多關係,在這種情況下,可以提取相關類別項如下:

假設你有分類對象c1

c1.item_set.all() 

這裏c1 = Category.objects.get(id=5)

1

因爲一個項目可在多個類別,並且還,一類可能有CategoryItem模型之間的多個項目必須是Many-to-Many關係,你可以定義如下:

class Category(models.Model): 
    name = models.CharField(max_length=30) 
    ..... 

class item(models.Model): 
    .... 
    categories = modles.ManyToManyField(Category) 

docs中,您可以看到可以使用Python API工具執行的更多操作細節。

1

我建議的最佳做法是,在項目表中添加多對多的類別表關係。

例如:

class Category(models.Model): 
    # Write here your fields name 

class Item(models.Model): 
    categories = models.ManyToManyField(Category) 
相關問題