好的,所以我已经发布了有关此问题的文章,我现在正在尝试隔离该问题..
我试图简单地提交一个表单,并在成功时出现一个警报(只是为了验证我的代码是否有效)。我是 Jquery/JS 新手。当我注释掉我的代码时,未注释的代码可以工作:
$(document).ready(function(){
var $myForm = $('.form')
$myForm.addClass('site-yellow')
$('.form').on('submit', function(event){
event.preventDefault();
var form = $(event.target)
var formData = new FormData(form[4]);
alert("Video done!");
// $.ajax({
// type : 'POST',
// url : "{% url 'videos-upload' %}",
// data : {
// data : formData,
// csrfmiddlewaretoken: '{{ csrf_token }}',
// }
// success : function(){
// }
// });
});
});
一旦我取消注释代码,整个事情就会崩溃..但我似乎无法弄清楚..
我的观点:
class VideoUploadView(PermissionRequiredMixin, LoginRequiredMixin, FormView):
form_class = VideoUploadForm
success_url = '/videos'
template_name = 'videos/video_form.html'
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST, request.FILES)
if form.is_valid():
form.save()
# stuff
form.save()
messages.success(self.request, self.success_message)
return redirect(self.success_url)
return render(request, self.template_name, {'form': form})
我的 HTML:
<form class="form" enctype="multipart/form-data" method="POST">
{% csrf_token %}
<div class="form-row mt-4 mb-4">
<div class="form-group col-md-12 mb-0">
{{ form|as_crispy_field }}
</div>
</div>
<div class="form-row mt-4">
<button class="btn btn-warning" type="submit">Save Video</button>
</div>
</form>
我需要做什么才能获取 AJAX 请求来提交表单?
最佳答案
JS:
$.ajax({
type: 'POST',
url: '{% url "upload-videos" %}',
enctype: 'multipart/form-data',
processData: false,
contentType: false,
data: new FormData(this) ,
success: function(data){
alert('Success')
}
在你的views.py中,你需要接收json:
if request.method == 'POST':
form = self.form_class(request.POST, request.FILES)
if form.is_valid():
print("done")
关于javascript - 如何在 Django 中 AJAX 视频上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59241856/