Skip to content

Commit 3b62bdf

Browse files
committed
Allow views to return an int for status code, error template not required
1 parent b880d87 commit 3b62bdf

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

plain/plain/views/base.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,6 @@ def get_response(self) -> ResponseBase:
7272
if isinstance(result, ResponseBase):
7373
return result
7474

75-
# Allow return of an int (status code)
76-
# or tuple (status code, content)?
77-
7875
if isinstance(result, str):
7976
return Response(result)
8077

@@ -84,6 +81,11 @@ def get_response(self) -> ResponseBase:
8481
if isinstance(result, dict):
8582
return JsonResponse(result)
8683

84+
if isinstance(result, int):
85+
return Response(status=result)
86+
87+
# Allow tuple for (status_code, content)?
88+
8789
raise ValueError(f"Unexpected view return type: {type(result)}")
8890

8991
def options(self) -> Response:

plain/plain/views/errors.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from plain.http import ResponseBase
2+
from plain.templates import TemplateFileMissing
23

34
from .templates import TemplateView
45

@@ -23,3 +24,9 @@ def get_response(self) -> ResponseBase:
2324
# Set the status code we want
2425
response.status_code = self.status_code
2526
return response
27+
28+
def get(self):
29+
try:
30+
return super().get()
31+
except TemplateFileMissing:
32+
return self.status_code

0 commit comments

Comments
 (0)