【发布时间】:2021-07-25 13:01:11
【问题描述】:
我有以下型号:
class Category(models.Model):
name = models.CharField(max_length=100, null=False, blank=False)
description = models.CharField(max_length=500, null=True, blank=True)
class Website(models.Model):
...
category = models.ManyToManyField('Category', related_name='website_category')
...
由于每个网站可以有多个类别,所以我想为每个类别多次获取每个网站。
例如:
网站 1 具有类别:类别 1、类别 2
网站 2 有类别:类别 2、类别 3
所需输出:
| Website | Category |
|---|---|
| website 1 | category 1 |
| website 1 | category 2 |
| website 2 | category 2 |
| website 2 | category 3 |
我对 Django ORM 比较陌生,无法构造查询来获取所需的结果,因此任何帮助都非常重要。
【问题讨论】:
-
你试过
Website.category.through.objects.all()吗? -
完美!非常感谢@JameelHamdan 这个“通过”是如何工作的?
-
models.ManyToManyField 创建一个连接表,.through 只是访问它
标签: python django django-models django-orm