我在模型类中有一些自定义函数处理一些数据,然后将自定义属性添加到模型中。事情是,我不知道如果生成模板时有什么可能引发异常(错误似乎只是沉默,所以它会进一步处理模板但是没有错误) 在视图中
test.objects.all()
render_to_string('template.html', {'test': test})
在模板中
{{ entry.state }}
在模型中:
@property
def state(self):
somedict = {'a': 111}
try:
print somedict['b']
except Exception as e:
FATAL_ERROR
我应该将什么放在fatal_error的位置,以便模板处理应该立即停止,或者给渲染函数一些例外? 感谢
答案 0 :(得分:0)
您可以将TEMPLATE_DEBUG
设置为True
。
答案 1 :(得分:0)
根据docs:
如果变量在调用时引发异常,则会传播异常,除非异常的
attribute silent_variable_failure
值为True
。如果异常的silent_variable_failure
属性值为True
,则该变量将呈现为空字符串。
示例:
t = Template("My name is {{ person.first_name }}.")
class PersonClass3:
def first_name(self):
raise AssertionError("foo")
p = PersonClass3()
t.render(Context({"person": p}))
#Error raised
class SilentAssertionError(Exception):
silent_variable_failure = True
class PersonClass4:
def first_name(self):
raise SilentAssertionError
p = PersonClass4()
t.render(Context({"person": p}))
"My name is ."
#No error raised
答案 2 :(得分:0)
我遇到了与你类似的问题。 但让我感到困惑的问题是,为什么异常根本不会引起我的注意 没有抓住它。
它似乎恰好在触摸模型实例时发生(例如getattr(model,not_exists_attribute))。