'file' 属性没有与之关联的文件
The 'file' attribute has no file associated with it
当我从 addvideo 模板文件添加视频时,它说:'file' 属性没有与之关联的文件。我希望用户能够上传视频。
当我从我的管理员添加视频时,它工作正常,但是当我从我的表单页面添加它时,它在管理员中添加了视频,但它没有在主页中显示视频,它突出显示了我的视频标签 src= “{{video.file.url}}”说:'file' 属性没有与之关联的文件。
这是我的模特:
class Video(models.Model):
file = models.FileField(upload_to='file', null=False, blank=False)
这是我的观点:
def addvideo(request):
if request.method == 'POST':
file = request.FILES.get('video')
videos = Video.objects.create(
file=file
)
return redirect('home')
return render(request, 'addvideo.html')
def home(request):
videos = Video.objects.all()
return render(request, 'home.html', {'videos': videos})
这是我的添加视频模板:
<div class="col-md-5">
<form action="" method="POST">
{% csrf_token %}
<div class="card">
<div class="form-group m-3">
<label>Upload Your Video</label><br><br>
<input required name="video" type="file" class="form-control-file">
</div>
<button type="submit" class="btn btn-primary">Post</button>
</div>
</form>
</div>
这是我的主页模板:
<div class="container">
{% for video in videos %}
<div class="row justify-content-center">
<video style="height: 500px; width: 500px;" controls src="{{video.file.url}}">
</video>
</div>
{% endfor %}
</div>
为了提交具有 HTML 形式的文件,您需要指定它将如何发送文件内容:您需要指定 enctype="…"
[MozillaDev]。你可以这样做:
<form action="" method="POST" <strong>enctype="multipart/form-data"</strong>>
{% csrf_token %}
<div class="card">
<div class="form-group m-3">
<label>Upload Your Video</label><br><br>
<input required name="video" type="file" class="form-control-file">
</div>
<button type="submit" class="btn btn-primary">Post</button>
</div>
</form>
当我从 addvideo 模板文件添加视频时,它说:'file' 属性没有与之关联的文件。我希望用户能够上传视频。
当我从我的管理员添加视频时,它工作正常,但是当我从我的表单页面添加它时,它在管理员中添加了视频,但它没有在主页中显示视频,它突出显示了我的视频标签 src= “{{video.file.url}}”说:'file' 属性没有与之关联的文件。
这是我的模特:
class Video(models.Model):
file = models.FileField(upload_to='file', null=False, blank=False)
这是我的观点:
def addvideo(request):
if request.method == 'POST':
file = request.FILES.get('video')
videos = Video.objects.create(
file=file
)
return redirect('home')
return render(request, 'addvideo.html')
def home(request):
videos = Video.objects.all()
return render(request, 'home.html', {'videos': videos})
这是我的添加视频模板:
<div class="col-md-5">
<form action="" method="POST">
{% csrf_token %}
<div class="card">
<div class="form-group m-3">
<label>Upload Your Video</label><br><br>
<input required name="video" type="file" class="form-control-file">
</div>
<button type="submit" class="btn btn-primary">Post</button>
</div>
</form>
</div>
这是我的主页模板:
<div class="container">
{% for video in videos %}
<div class="row justify-content-center">
<video style="height: 500px; width: 500px;" controls src="{{video.file.url}}">
</video>
</div>
{% endfor %}
</div>
为了提交具有 HTML 形式的文件,您需要指定它将如何发送文件内容:您需要指定 enctype="…"
[MozillaDev]。你可以这样做:
<form action="" method="POST" <strong>enctype="multipart/form-data"</strong>>
{% csrf_token %}
<div class="card">
<div class="form-group m-3">
<label>Upload Your Video</label><br><br>
<input required name="video" type="file" class="form-control-file">
</div>
<button type="submit" class="btn btn-primary">Post</button>
</div>
</form>