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] funcs: t.Iterable[URLDefaultCallable] = self.url_default_functions[None]
if "." in endpoint: if "." in endpoint:
bp = endpoint.rsplit(".", 1)[0] bps = reversed(endpoint.split(".")[:-1])
for bp in bps:
funcs = chain(funcs, self.url_default_functions[bp]) funcs = chain(funcs, self.url_default_functions[bp])
for func in funcs: for func in funcs:
func(endpoint, values) func(endpoint, values)