django - 基于函数的视图中的 Ajax
问题描述
我已经阅读了很多关于如何为 ajax 设置基于类的视图的教程。例子:
class JoinFormView(FormView):
form_class = JoinForm
template_name = 'forms/ajax.html'
success_url = '/form-success/'
def form_valid(self, form):
response = super(JoinFormView, self).form_valid(form)
if self.request.is_ajax():
print(form.cleaned_data)
data = {
'message': "Successfully submitted form data."
}
return JsonResponse(data)
else:
return response
我想知道如何将 ajax 所需的代码插入到这个基于函数的视图中。所需的代码是否取决于我是否要异步从数据库中提取或写入数据库?
def my_func_view(request):
template = 'accounts/profile.html'
form = Form123(request.POST or None)
if request.method == 'POST':
if form.is_valid():
instance = form.save(commit=True)
return redirect('/accounts/profile/')
else:
messages.error(request, 'There was an error.')
context = {'form': form,}
return render(request, template, context)
else:
context = {'form': form,}
return render(request, template, context)
谢谢你的帮助!
解决方案
你也对基于函数的视图做同样的事情..
from django.http import JsonResponse
def my_func_view(request):
template = 'accounts/profile.html'
form = Form123(request.POST or None)
if request.is_ajax():
if form.is_valid():
instance = form.save(commit=True)
return JsonResponse({'status':'data'})
else:
messages.error(request, 'There was an error.')
return JsonResponse({'status':'data'})
else:
context = {'form': form,}
return render(request, template, context)
推荐阅读
- swift - 如何在 SwiftUI 中使用径向渐变填充路径
- android - 当数据绑定android中的数据发生变化时如何更新UI?
- javascript - 教师变焦考勤工具
- google-cloud-platform - 如何解释 Google Cloud Natural Language API 情绪分析输出?
- f# - 如何从没有类型 F# 的列表中返回项目
- javascript - OpenLayers 重叠 LineStrings 问题
- python - 如何在不使用“元”的情况下在 Scrapy Parse 方法之间同步数据?
- ios - 如何使用导航按钮在 swift 5 中显示插页式广告
- bash - Windows 10,符号链接:行为差异,bash 与 cmd shell
- ios - iOS:子类化具有相同插座/布局但没有第二个 xib 的子类 UICollectionViewCell?