>我有两个模型:类别和项目。项目可以有 2 个或更多类别,所以我需要与我创建的项目建立类别关系(可能是一对多(。但是,我还需要获取与一个或多个类别相关的项目,可能是这样的: http://example.com/api/items?category_id=5
谁能建议我如何实现这一目标?谢谢。
,您在项目和类别之间有很多关系,因为
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)
在文档中,您可以看到可以使用 Python API 工具执行的操作的更多详细信息。
我建议的最佳做法是在项目表中添加类别表的多对多关系。
例如:
class Category(models.Model):
# Write here your fields name
class Item(models.Model):
categories = models.ManyToManyField(Category)