-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathviews.py
31 lines (25 loc) · 939 Bytes
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from typing import Dict, Union
from .render import render_nextjs_page, stream_nextjs_page
def nextjs_page(
*,
stream: bool = False,
template_name: str = "",
context: Union[Dict, None] = None,
using: Union[str, None] = None,
allow_redirects: bool = False,
headers: Union[Dict, None] = None,
):
if stream and (template_name or context or using):
raise ValueError("When 'stream' is set to True, you should not use 'template_name', 'context', or 'using'")
async def view(request, *args, **kwargs):
if stream:
return await stream_nextjs_page(request=request, allow_redirects=allow_redirects, headers=headers)
return await render_nextjs_page(
request=request,
template_name=template_name,
context=context,
using=using,
allow_redirects=allow_redirects,
headers=headers,
)
return view