Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 检查具有两个列表/查询集的两个实体/模型之间是否存在关系_Django_Django Models_Django Queryset - Fatal编程技术网

Django 检查具有两个列表/查询集的两个实体/模型之间是否存在关系

Django 检查具有两个列表/查询集的两个实体/模型之间是否存在关系,django,django-models,django-queryset,Django,Django Models,Django Queryset,我有三种型号:A、B和C A有一个定义B或C是否可以连接到它的类型 B与a有一个一元化的关系 C与a有一个一元化的关系 我需要的是: 获取类型为B但a B对象不相关的所有帐户 与C的1相同 因此,我: a_type_b = Account.objects.filter(type=ACCOUNT_TYPE_B) 有一些was需要检查B模型/对象是否已经附加/相关,而不是通过所有帐户循环并检查?,因为这会花费大量时间和查询,而且效率不高 在创建/更新模型时,不要让C连接到B类帐户,反之亦

我有三种型号:A、B和C

  • A有一个定义B或C是否可以连接到它的类型
  • B与a有一个一元化的关系
  • C与a有一个一元化的关系

我需要的是:

  • 获取类型为B但a B对象不相关的所有帐户
  • 与C的1相同
因此,我:

a_type_b = Account.objects.filter(type=ACCOUNT_TYPE_B)
有一些was需要检查B模型/对象是否已经附加/相关,而不是通过所有帐户循环并检查?,因为这会花费大量时间和查询,而且效率不高

  • 在创建/更新模型时,不要让C连接到B类帐户,反之亦然
  • 您可以根据相关模型的
    pk
    进行筛选,例如:

    A.objects.filter(type=A.ACCOUNT_TYPE_B, b__pk__isnull=True)
    

    你能分享你的模型和相关代码而不是描述它吗?请展示真实的代码
    a=a.objects.filter()
    不是字段定义,在类级别没有意义。@DanielRoseman非常抱歉,这是编辑问题,我更新了
    A.objects.filter(type=A.ACCOUNT_TYPE_B, b__pk__isnull=True)