python - 如何在基于类的视图中返回 JSON 响应,而不是 HTTP 响应
问题描述
我有一个基于类的视图。我在引导模式上使用 Ajax。为了避免页面刷新,我想使用基于此类的视图返回 JSON 响应而不是 HTTP 响应,但我只看到了如何为基于函数的视图返回 JSON 响应。
视图.py:
from django.contrib.auth.mixins import LoginRequiredMixin
class TaskCreateView(LoginRequiredMixin, CreateView):
template_name = 'create.html'
form_class = TaskForm
success_url = reverse_lazy('task_list')
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs.update(user=self.request.user)
return kwargs
解决方案
试试下面的代码:
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse
class TaskCreateView(LoginRequiredMixin, CreateView):
template_name = 'create.html'
form_class = TaskForm
success_url = reverse_lazy('task_list')
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs.update(user=self.request.user)
return kwargs
def form_valid(self, form):
return JsonResponse({'foo':'bar'})
推荐阅读
- ios - devops Pipelines 中的私有 Cocopods 存储库
- git - 当某些文本被推送或提交时,如何设置 git 以引发错误?
- three.js - 三.js 糟糕的表现
- javascript - 如何设置 Angular 应用程序路径以在 Visual Studio Code 中导入不带前缀的组件?
- php - 我在使用 datatables.net 时遇到了我的 DataTables 问题
- c# - 在基于策略的授权期间为拒绝访问创建自定义页面
- javascript - 如果差为分钟,则减去时间分类
- javascript - Jquery验证规则,提交后,首先检查“retype-password”(仅当我们在两个字段中输入错误密码且其他字段为空时)
- php - Jquery以动作形式替换奇怪的行为
- http - 可以从http重定向到https吗?