我有两个模型:类别和项目。项目可以有2个或更多类别,所以我需要从我创建的项目中获得类别(可能是一对多)的关系。但是,我还需要获取与某个类别(或类别)相关的项目,可能是这样的:
http://example.com/api/items?category_id=5
任何人都可以建议我如何实现这一目标?感谢。
答案 0 :(得分:1)
由于某个项目可能属于多个类别,并且某个类别可能在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工具执行的操作的更多详细信息。
答案 1 :(得分:1)
我相信,你在物品和类别之间有很多关系
class Category:
.....
class Item:
category = ManytoMany relation to Category
在这种情况下,您可以提取与类别相关的项目,如下所示:
假设您将Category对象设为c1
c1.item_set.all()
此处c1 = Category.objects.get(id=5)
答案 2 :(得分:1)
我建议的最佳做法是,在项目表中添加多对多类别表格。
例如:
class Category(models.Model):
# Write here your fields name
class Item(models.Model):
categories = models.ManyToManyField(Category)