Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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
Python 将属性批量设置为django queryset_Python_Django_Django Queryset - Fatal编程技术网

Python 将属性批量设置为django queryset

Python 将属性批量设置为django queryset,python,django,django-queryset,Python,Django,Django Queryset,我有这样的模型: class MyModel(models.Model): #fields def __init__(self, *args, **kwargs): self._issue_status = None super(...).__init__(...) @property def issue_status(self): if self._issue_status is None:

我有这样的模型:

class MyModel(models.Model):
    #fields
    def __init__(self, *args, **kwargs):
        self._issue_status = None
        super(...).__init__(...)

    @property
    def issue_status(self):
        if self._issue_status is None:
            self.get_issue_status()
        return self._issue_status
获取问题状态进入api并获取状态。但api可以批量返回状态,我想在获取MyModel的queryset时使用它。 所以我写了自己的经理:

class MyModelManager(models.Manager):
    def get_queryset(self):
        queryset = super(...).get_queryset()
        issues = self.bulk_get_issues()
        set_issue_statuses(queryset)
        return queryset

它可以很好地获取所有对象。但当我尝试过滤queryset时,每个对象的status属性都是None。我怎样才能解决这个问题?谢谢。

我想您想覆盖get\u queryset函数, 比如:

def get_queryset(self, request):
    qs = super(...).get_queryset(request)

    the_filter = ["None", "", "SKIPPED", ]
    return qs.exclude(status__in=the_filter)

很难从问题中不完整的代码中看出您在做什么,但请注意,queryset的
.filter()
方法只能对数据库字段值进行操作,而不能对python中的模型实例设置的属性进行操作。您可以循环查询集结果并获取所有具有所需属性的结果,虽然可能有点慢。