Fix inject_url_defaults for nested blueprints

It now takes account of the fact that blueprints can be nested.
This commit is contained in:
pgjones 2021-05-15 16:39:09 +01:00
parent fdcc62be82
commit 735b6abf46

View file

@ -1783,8 +1783,10 @@ class Flask(Scaffold):
"""
funcs: t.Iterable[URLDefaultCallable] = self.url_default_functions[None]
if "." in endpoint:
bp = endpoint.rsplit(".", 1)[0]
funcs = chain(funcs, self.url_default_functions[bp])
bps = reversed(endpoint.split(".")[:-1])
for bp in bps:
funcs = chain(funcs, self.url_default_functions[bp])
for func in funcs:
func(endpoint, values)