summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Meyer <carl@oddbird.net>2014-04-09 23:19:55 -0600
committerTim Graham <timograham@gmail.com>2014-04-10 06:19:02 -0400
commit0b43308e2de5dcac67b530bb03376655dfb61cef (patch)
tree18b25f0f55592894420fa70e08b0cf46834cff52
parent941f947bfd8d8f1a608634cf42f212b3a5a1933c (diff)
[1.7.x] Fixed #22412 -- More nuanced advice re template filters and exceptions.
Thanks Tim for review. Backport of 7e3834adc9 from master
-rw-r--r--docs/howto/custom-template-tags.txt8
1 files changed, 5 insertions, 3 deletions
diff --git a/docs/howto/custom-template-tags.txt b/docs/howto/custom-template-tags.txt
index f07ae6112f..f26fa34af9 100644
--- a/docs/howto/custom-template-tags.txt
+++ b/docs/howto/custom-template-tags.txt
@@ -88,9 +88,11 @@ Custom filters are just Python functions that take one or two arguments:
For example, in the filter ``{{ var|foo:"bar" }}``, the filter ``foo`` would be
passed the variable ``var`` and the argument ``"bar"``.
-Filter functions should always return something. They shouldn't raise
-exceptions. They should fail silently. In case of error, they should return
-either the original input or an empty string -- whichever makes more sense.
+Usually any exception raised from a template filter will be exposed as a server
+error. Thus, filter functions should avoid raising exceptions if there is a
+reasonable fallback value to return. In case of input that represents a clear
+bug in a template, raising an exception may still be better than silent failure
+which hides the bug.
Here's an example filter definition: