您好,当我尝试现在提交一个不保存数据的表单时,我正在尝试实现一个Django模型表单。请问您能获得帮助吗?我不知道该实现的错误之处:
下面的代码:models.py
class Videos(models.Model):
lecturer = models.CharField(max_length=100, blank=False, null=False)
module = models.CharField(max_length=100, blank=False, null=False)
video = models.FileField(upload_to='lectures/')
date = models.DateField(default=datetime.datetime.now())
下面的代码:form.py
class LectureVideos(forms.ModelForm):
class Meta:
model= Videos
fields = '__all__'
下面的代码:view.py
def LectureVideoForm(request):
form = LectureVideos()
if form.is_valid():
form.save()
return redirect('upload-success')
return render(request, 'forms.html', {'form':form})
下面的代码:forms.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upload</title>
</head>
<body>
<form action="" method="POST" enctype="multipart/form-data">
{% csrf_token %}
{{form.as_p}}
<input type="submit" value="Upload Video">
</form>
</body>
</html>
您从未将数据传递给表单。如果有POST请求,则将request.POST
(和request.FILES
)传递给表单:
def LectureVideoForm(request):
if request.method == 'POST':
form = LectureVideos(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('upload-success')
else:
form = LectureVideos()
return render(request, 'forms.html', {'form':form})
注意:函数通常是用snake_case而不是PerlCase编写的,因此建议将函数重命名为
lecture_video_form
not。LectureVideoForm
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句