测试或确保所有模板变量实际上都存在的最佳实践是什么?
假设我们有以下模板
<html>
<div>{{ existing_object.non_existing_attribute }}</div>
</html>
我们有一个现有的对象。因此,我们不能像下面的答案那样真正地测试响应上下文:Django Unitest Checking Value Of Template Variable
有documentation中所述的string_if_invalid
。但这仅应用于调试目的。
任何有关如何最好地避免这种情况的见识都会有所帮助!
编辑:我们假设不存在的属性是一个错误。也就是说,我拼错了变量,因此,它显示为空字符串。
答案 0 :(得分:0)
您可以使用内置模板标签default_if_none
。
{{ object.attribute|default_if_none:"Nothing" }}
答案 1 :(得分:0)
我认为执行此操作的正确方法是测试特定的设置并为设置string_if_invalid
设置一个值。因此,将该值设置为INVALID
之类的值。当返回响应时,请确保模板不包含INVALID
。
由于这些设置仅在您的测试环境中可用,因此您永远不会冒将INVALID
一词投入生产的风险。