如果您呈现 HTML
如果您呈现 HTML,我只会将“回退”消息添加到模板中。您可以使用模板过滤器执行此操作:default
{{ object.notes | default:"<i>No notes</i>" }}
这种用法的优点是 - 如果另一个模板应该呈现另一个消息,或者斜体不适合 - 您可以决定使用其他东西。此外,模板对如何呈现内容相当明确。
请注意,我们在这里使用.notes
,而不是.get_notes
添加某种占位符的函数。
如果是表单域
我建议这"No notes"
不是. 您将如何与明确写作的用户区分开来?如果你后来改变主意怎么办?然后你必须重写表单中的所有逻辑等。但是你可以使用, 并为此添加相关标记:CharField
"No notes"
"No notes"
placeholder
class SomeForm(forms.Form):
notes = forms.CharField(
label='notes',
widget=forms.TextInput(attrs={'placeholder': 'No notes'})
)
然后,您可以使用.css
样式表执行标记:
input::placeholder {
font-style: italic;
}
get_notes
改为使用
如果您坚持使用get_notes
,您可以首先简化您的功能,然后您可以使用它mark_safe(..)
来呈现原始html:
from django.utils.safestring import mark_safe
def get_notes(self):
return self.notes or mark_safe('<i>No notes</i>')