Django按多个过滤对象,只返回匹配的多个关系

2024-05-14 20:54:47 发布

您现在位置:Python中文网/ 问答频道 /正文

class Category(models.Model):
    ....

class User(models.Model):
    .....
    category = models.ForeignKey(
        Category, on_delete=models.SET_NULL, null=True)
    
    group = models.ManyToManyField(
        Group, through="UserGroup")
    

class Group(models.Model:
    ....


class UserGroup(models.Model):
    ......
    user = models.ForeignKey(
        User, on_delete=models.CASCADE)
    Group = models.ForeignKey(
        Group, on_delete=models.CASCADE)
    .....

我希望能够返回包含具有特定类别的用户的组 我可以用

queryset = Group.objects.all()
category = Category.objects.get(pk=category_id)
queryset = queryset.filter(user__category_id=category_id)

但是,即使User.category不等于给定的category_id,这仍然会返回与该组关联的所有用户。如何将那些与该组相关的用户排除在外,从而只返回具有正确类别的用户

所以如果有 用户1&;user2的category_id为1,user3的category_id为2,则返回的组中只有user1&;来自序列化程序的user2数据


2条回答

您可以测试ScriptEvaluator()如何响应Thread.interrupt()。如果写得好,那么executor.shutdownNow()就行了。如果不是,那么就没有完美的解决方案

然而,假设javascript与主代码之间没有太多交互,那么可以使用线程。停止()。如果你决定这么做,那么确保你大体上理解了why not to use Thread.stop()

Executor.shutdownNow()并不总是能正常工作,也许您需要Thread.stop()作为核心解决方案

相关问题 更多 >

    热门问题