<bdo id='kK3Ez'></bdo><ul id='kK3Ez'></ul>
      1. <tfoot id='kK3Ez'></tfoot>

      2. <i id='kK3Ez'><tr id='kK3Ez'><dt id='kK3Ez'><q id='kK3Ez'><span id='kK3Ez'><b id='kK3Ez'><form id='kK3Ez'><ins id='kK3Ez'></ins><ul id='kK3Ez'></ul><sub id='kK3Ez'></sub></form><legend id='kK3Ez'></legend><bdo id='kK3Ez'><pre id='kK3Ez'><center id='kK3Ez'></center></pre></bdo></b><th id='kK3Ez'></th></span></q></dt></tr></i><div id='kK3Ez'><tfoot id='kK3Ez'></tfoot><dl id='kK3Ez'><fieldset id='kK3Ez'></fieldset></dl></div>
        <legend id='kK3Ez'><style id='kK3Ez'><dir id='kK3Ez'><q id='kK3Ez'></q></dir></style></legend>

        <small id='kK3Ez'></small><noframes id='kK3Ez'>

        姜戈过滤多对多包含

        时间:2024-08-21
          <bdo id='VKiOA'></bdo><ul id='VKiOA'></ul>

            1. <i id='VKiOA'><tr id='VKiOA'><dt id='VKiOA'><q id='VKiOA'><span id='VKiOA'><b id='VKiOA'><form id='VKiOA'><ins id='VKiOA'></ins><ul id='VKiOA'></ul><sub id='VKiOA'></sub></form><legend id='VKiOA'></legend><bdo id='VKiOA'><pre id='VKiOA'><center id='VKiOA'></center></pre></bdo></b><th id='VKiOA'></th></span></q></dt></tr></i><div id='VKiOA'><tfoot id='VKiOA'></tfoot><dl id='VKiOA'><fieldset id='VKiOA'></fieldset></dl></div>
              • <legend id='VKiOA'><style id='VKiOA'><dir id='VKiOA'><q id='VKiOA'></q></dir></style></legend><tfoot id='VKiOA'></tfoot>

                • <small id='VKiOA'></small><noframes id='VKiOA'>

                    <tbody id='VKiOA'></tbody>

                • 本文介绍了姜戈过滤多对多包含的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在尝试通过多对多关系对一堆对象进行过滤操作。因为trigger_roles字段可能包含多个条目,所以我尝试了contains过滤。但是,由于这是设计用于字符串的,我几乎无能为力,我不知道应该如何过滤这个关系(您可以忽略values_list()ATM机。)。

                  此函数附加到用户配置文件:

                  def getVisiblePackages(self):
                      visiblePackages = {}   
                      for product in self.products.all():
                          moduleDict = {}
                          for module in product.module_set.all():
                              pkgList = []
                              involvedStatus = module.workflow_set.filter(trigger_roles__contains=self.role.id,allowed=True).values_list('current_state', flat=True)
                  

                  我的工作流模型如下(简化):

                  class Workflow(models.Model):
                      module = models.ForeignKey(Module)
                      current_state = models.ForeignKey(Status)
                      next_state = models.ForeignKey(Status)
                      allowed = models.BooleanField(default=False)
                      involved_roles = models.ManyToManyField(Role, blank=True, null=True)
                      trigger_roles = models.ManyToManyField(Role, blank=True, null=True)
                  

                  尽管解决方案可能非常简单,但我的大脑不会告诉我。

                  感谢您的帮助。

                  推荐答案

                  您是否尝试过这样的操作:

                  module.workflow_set.filter(trigger_roles__in=[self.role], allowed=True)
                  

                  或仅当self.role.id不是PKS列表:

                  module.workflow_set.filter(trigger_roles__id__exact=self.role.id, allowed=True)
                  

                  这篇关于姜戈过滤多对多包含的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:为ManyToMany字段批量创建的正确方式,Django? 下一篇:使用Django ORM可以通过多少种方式获取ManyToMany字段数据

                  相关文章

                • <tfoot id='f0nHt'></tfoot>
                • <small id='f0nHt'></small><noframes id='f0nHt'>

                    <legend id='f0nHt'><style id='f0nHt'><dir id='f0nHt'><q id='f0nHt'></q></dir></style></legend>

                  1. <i id='f0nHt'><tr id='f0nHt'><dt id='f0nHt'><q id='f0nHt'><span id='f0nHt'><b id='f0nHt'><form id='f0nHt'><ins id='f0nHt'></ins><ul id='f0nHt'></ul><sub id='f0nHt'></sub></form><legend id='f0nHt'></legend><bdo id='f0nHt'><pre id='f0nHt'><center id='f0nHt'></center></pre></bdo></b><th id='f0nHt'></th></span></q></dt></tr></i><div id='f0nHt'><tfoot id='f0nHt'></tfoot><dl id='f0nHt'><fieldset id='f0nHt'></fieldset></dl></div>

                        <bdo id='f0nHt'></bdo><ul id='f0nHt'></ul>