python - 将属性批量设置为 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:
            self.get_issue_status()
        return self._issue_status

其中 get_issue_status 转到 api 并获取状态。但是 api 可以批量返回状态,我想在获取 MyModel 的查询集时使用它。 所以我写自己的经理:

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

它非常适合获取所有对象。但是当我尝试过滤查询集时 - 每个对象的状态属性都为无。我该如何解决?谢谢。

最佳答案

我想你想覆盖你的 get_queryset 函数, 像这样的东西:

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

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

关于python - 将属性批量设置为 django queryset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803859/

相关文章:

python - Django Rest Framework - 如何使用 update_or_create

python - 返回使用geopy和try/except时引发AttributeError的项目列表?

python - Django Oscar - 已下订单的电子邮件管理员

django - Django从URL保存图像并与ImageField连接

django - 如何为 DRF Serializer 访问/创建正确的 Request 对象?

python - 如何让 'list' (players/) 和 'detail' (players/{id}) 有不同的结果?

python - 匹配 python 正则表达式中的嵌入换行符

python - 在python中访问时如何保留matlab结构?

django - 是否可以使用可调用的 order_by ?

python - 根据条件使用外键计数注释 Django 查询集