Django在filter()查询中找到两个对象,但无法循环遍历它们
这以前从未发生过。下面是我添加到模型中的一个方法。它只是检查与之相关的行项目是否没有设置对帐日期 该方法总是返回False,因此我添加了一些logger.warning()行来查看发生了什么。正如您在图像中所看到的,该方法执行,发现模型对象有两个相关的line_项,然后忽略for循环。很奇怪Django在filter()查询中找到两个对象,但无法循环遍历它们,django,Django,这以前从未发生过。下面是我添加到模型中的一个方法。它只是检查与之相关的行项目是否没有设置对帐日期 该方法总是返回False,因此我添加了一些logger.warning()行来查看发生了什么。正如您在图像中所看到的,该方法执行,发现模型对象有两个相关的line_项,然后忽略for循环。很奇怪 我看不出有什么问题,但是您可以通过将检查移到数据库中来简化这一点。类似于return self.lineitem\u set.filter(对账\u date\u isnull=False)的东西。exi
我看不出有什么问题,但是您可以通过将检查移到数据库中来简化这一点。类似于
return self.lineitem\u set.filter(对账\u date\u isnull=False)的东西。exists()
应该可以。Peter,成功了,谢谢。@PeterdGlopper刚刚选中,行项目没有定义哦,是的,跟踪了。在日志记录器警告中,您的意思是类似于“Line\u item is”+item。或第行项目中的第行项目:
@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