How to set default display content for possibly empty variables in the `default` filter of AnQiCMS templates?

In AnQi CMS template design, we often encounter situations where variable values may be empty.For example, an article may not have a thumbnail set or a certain product field may be temporarily unfilled.If the template directly displays these empty values, ugly blank spaces will appear on the page, affecting user experience, and may even confuse visitors.To solve this problem, AnQi CMS provides a very practical filter mechanism, among which,defaultThe filter is the key tool to ensure the continuity of content display.

defaultThe filter: the caring guardian of variable null values.

defaultThe filter allows us to set a predefined, friendly alternative content for template variables that may be empty.When the actual value of the variable is empty, the template does not display a blank space but elegantly presents the default content we have预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设预设

Its working principle is:If a variable is considered 'empty' (for example, its value isnil, an empty string""numbers0, or a boolean valuefalse)defaultThe filter will use the fallback value you specified. Otherwise, it will display the original value of the variable.

The usage method is very intuitive:

{{ 你的变量名|default:"默认显示内容" }}

For example, if you want to display the title of an article but are worried that it may be empty, you can set it up like this:

<h1>{{ archive.Title|default:"此文章暂无标题" }}</h1>

In this way, ifarchive.Titlethere is a value, it will be displayed normally; ifarchive.TitleIs empty (for example, in a database isnilor an empty string), the page will display 'This article has no title', avoiding blank or error prompts, making the page look more professional and friendly.

Similarly, for any missing descriptive text or image address,defaultthe filter is very useful:

<p>{{ archive.Description|default:"暂无内容简介,敬请期待。" }}</p>
<img src="{{ archive.Thumb|default:"/static/images/default_thumb.webp" }}" alt="{{ archive.Title|default:"默认图片" }}">

Here, ifarchive.Descriptionis empty, a default introduction will be displayed; ifarchive.ThumbThat is, if the thumbnail address is empty, it will display a preset default placeholder image.

default_if_noneFilter: Distinguish the subtle difference between 'empty value' and 'non-existent'.

In some cases, we may need to judge more accurately whether a variable is really not present(nil) instead of an empty string""or numbers0because in some business logic, an empty string and0itself may be a meaningful valid value. At this time,default_if_noneThe filter is particularly important.

default_if_nonethe filter will only apply to values that arenil(In the Go language template, it indicates a null pointer or undefined variable becoming effective. If the variable is an empty string)""or a number0,default_if_noneIt will consider it a valid value and will not trigger the default content display.

Its usage is similar todefaultsimilar:

{{ 你的变量名|default_if_none:"默认显示内容" }}

Let us understand the difference between them through a comparison:

Suppose there is a variableuserStatus:

  1. WhenuserStatushas a value ofnil:

    • {{ userStatus|default:"未设置状态" }}→ Display "Unset state"
    • {{ userStatus|default_if_none:"未设置状态" }}→ Display "Unset state"
  2. WhenuserStatusthe value is an empty string"":

    • {{ userStatus|default:"未设置状态" }}→ Display "Unset state"
    • {{ userStatus|default_if_none:"未设置状态" }}→ Display empty string""(because""It is a valid value for it)}
  3. WhenuserStatusThe value is a number0:

    • {{ userStatus|default:"未设置状态" }}→ Display "Unset state"
    • {{ userStatus|default_if_none:"未设置状态" }}→ Display0(because0It is a valid value for it)}

Therefore, if you need to clearly distinguish between a variable that has never been assigned a value(nil) and a variable that has been assigned an empty value (such as an empty string or zero),default_if_noneProvided more refined control.

Why are these filters so important?

  • Improve user experience:Remove blank areas or incomplete information on the page, providing users with a smoother and more professional browsing experience.Visitors will not see broken pages or missing data, but instead see meaningful alternative content.
  • Enhance the robustness of the template:Effectively prevent page display errors or code exceptions caused by missing data. Even if the backend data occasionally has issues, the front-end page can maintain stable operation.
  • Simplify template logic:Avoided in the template for each possible empty