我如何获得 Django 模型中 ManyToMany 字段中的所有 objects

How do i get all the objects which is in ManyToMany field in Django models

我有两个模型,在第二个模型中,我创建了一个 ManyToMany 字段

class Listing(models.Model):
    title = models.CharField(max_length=50)
    name = models.CharField(max_length=100)
    description = models.TextField()
    starting_bid = models.IntegerField()
    category = models.CharField(max_length=50, blank=True)
    image = models.TextField(blank=True)
    posted_by = models.ForeignKey(User, on_delete=models.CASCADE)
    active = models.BooleanField(default=True)

    def __str__(self):
        return self.title
    

class Catagories(models.Model):
    category = models.CharField(max_length=100)
    listings = models.ManyToManyField(Listing, blank=True, related_name="cat")
 

现在假设我已经创建了“电子产品”类别,并且在该类别中保存了 3 个标题为“移动设备、笔记本电脑、微波炉”的列表。

现在我想获取此类别中的所有列表,但我没有获取。

现在的问题是:

如何获取该类别中的所有列表项?

您可以过滤:

my_category<strong>.listings.all()</strong>

因此我们有一个名为 mycatCategory,我们可以检索那个 CategoryListing

如果您只有类别名称,您可以使用:

Listing.objects.filter(<strong>cat__category='my category name'</strong>)