我正在尝试使用 curses.wrapper() 函数快速解决问题。正如文档所说,它接受 afunction或object它的第一个参数将是屏幕,然后用于在屏幕上进一步工作。这是代码:
def function(screen):
screen.addstr(0, 0, "print something here")
screen.refresh()
curses.wrapper(function)
Run Code Online (Sandbox Code Playgroud)
但是,屏幕上什么也没有打印出来。控制只是进进出出。
我已经对 Generic DetialView 类进行了子分类,views.py并试图根据 url 中收到的参数找出一种以 JSON 格式返回数据的方法。这是我尝试做的...
# views.py
from django.views.generic import DetailView
from django.http import JsonResponse
class ExtendedView(DetailView):
context_object_name = 'post'
model = StorageModel
template_name='posts.html'
def get_context_data(self, **kwargs):
data = super(HacksViewPost, self).get_context_data(**kwargs)
if bool(self.request.GET):
data__ = JsonForm(request.GET)
if data__.is_valid():
json = data__.cleaned_data['json']
if json == 'true':
return JsonResponse({'data': 'data'})
return data
Run Code Online (Sandbox Code Playgroud)
但这给了我TypeError应该的:
TypeError at /category/extended-slug/
context must be a dict rather than JsonResponse.
Run Code Online (Sandbox Code Playgroud)
激活ExtendedView类的 url是:
/category/extended-slug?json=true
Run Code Online (Sandbox Code Playgroud)
所以,问题是我如何从通用视图类以 JSON 格式发送数据,有没有更好的方法来实现这一点?