class Model1(models.Model):
def method1(self):
try:
x = self.someotherclass_set.get(....)
except self.DoesNotExist:
return None
return x
然后是过滤器:
@register.filter
def filter1(arg1):
x = var1. method1()
if x:
return x.value
else:
return 'Nothing'
观点:
some data: {{ item|filter1 }}
然而黄色屏幕和错误DoesNotExist
正在抛出。我怎么能摆脱它?我只想展示"没什么"如果没有记录。
答案 0 :(得分:0)
使用first()
方法代替try
/ except
块:
def method1(self):
return self.someotherclass_set.filter(....).first()
顺便说一句,你也可以简化模板过滤器:
@register.filter
def filter1(arg1):
x = arg1.method1()
return x.value if x else 'Nothing'
更新:如果您确实想要使用例外,请将例外更改为有效例:
except Model1.DoesNotExist: