首页 > 解决方案 > Django 在 filter() 查询中找到两个对象,但无法遍历它们

问题描述

以前从未发生过这种情况。以下是我添加到模型中的方法。它只是检查与它相关的所有 LineItems 都没有设置对帐日期。

该方法总是返回 False,所以我添加了一些 logger.warning() 行来查看发生了什么。如图所示,该方法执行后,发现模型对象有两个相关的 line_items,然后忽略了 for 循环。很奇怪!

Django 在 filter() 查询中找到两个对象,但无法遍历它们

    @property
    def is_reconciled(self):
        """Checks if JournalEntry has reconciled lineitems"""
        logger.warning('Starting is_reconciled() model property..')
        line_items = LineItem.objects.filter(journal_entry=self.id)
        #logger.warning('Found ' + str(len(line_items)) + ' line items')
        for item in line_items:
            logger.warning('Doing loop 1. Line_item is '+ item)
            if item.reconciliation_date is not None:
                logger.warning('Reconciliation date is not none here')
                return True
        return False

标签: django

解决方案


推荐阅读