app: Use _find_attr to locate controller's allowed_methods
Using the `milla.app.Application._find_attr` method to find the `allowed_methods` of returned controller callables allows the attribute to be defined e.g. on the class for instance methods, etc.master
parent
922778ee4c
commit
230da47d5b
|
@ -75,8 +75,10 @@ class Application(object):
|
||||||
if request.method == 'POST' and '_method' in request.POST:
|
if request.method == 'POST' and '_method' in request.POST:
|
||||||
request.method = request.POST.pop('_method')
|
request.method = request.POST.pop('_method')
|
||||||
|
|
||||||
allowed_methods = getattr(func, 'allowed_methods',
|
try:
|
||||||
self.DEFAULT_ALLOWED_METHODS)
|
allowed_methods = self._find_attr(func, 'allowed_methods')
|
||||||
|
except AttributeError:
|
||||||
|
allowed_methods = self.DEFAULT_ALLOWED_METHODS
|
||||||
if request.method not in allowed_methods:
|
if request.method not in allowed_methods:
|
||||||
allow_header = {'Allow': ', '.join(allowed_methods)}
|
allow_header = {'Allow': ', '.join(allowed_methods)}
|
||||||
if request.method == 'OPTIONS':
|
if request.method == 'OPTIONS':
|
||||||
|
|
Loading…
Reference in New Issue