在Django中如何根据查询结果返回True或False?
问题解决:判断Django模型数据是否存在
报错翻译
charts.models.DoesNotExist: 找不到匹配查询条件的ChartSimilar对象。
问题原因
你使用的get()方法在查询不到符合条件的对象时,不会返回False或None,而是直接抛出DoesNotExist异常,导致代码无法正常进入else分支。
解决方案
方法1:使用exists()(推荐)
通过filter()构建查询集后调用exists(),它会直接返回布尔值,且查询效率更高:
if ChartSimilar.objects.filter(chart=pk, year=year).exists(): print('True') else: print('False')
方法2:捕获异常处理
如果必须使用get(),可以通过捕获异常来实现需求:
from charts.models import ChartSimilar try: ChartSimilar.objects.get(chart=pk, year=year) print('True') except ChartSimilar.DoesNotExist: print('False')
内容的提问来源于stack exchange,提问作者user18408844
相关产品推荐
相关产品推荐

