一个用户告诉我将对象传递给views.py中的模板。。
我在Django中创建了一个模型,并希望在html代码中显示使用该模型创建的对象的标题。 我的模型代码是:
class Video(models.Model):
title = models.CharField(max_length=40, blank=False)
def __str__(self):
return self.title
我的html代码是:
<html>
<body>
<header>
<div class="container">
<!-- Branding -->
<a href="/"><span class="branding">Movies & Other</span></a>
<a href="/admin"><span class="adminpanel">Admin panel</span></a>
</div>
</header>
<h1 class="movietitle">{{ video.title }}</h1>
<div class="videoDetails">
<video width="700" height="430" controls>
<source src="uploadvideos/videos/yt/yt.mp4" type="video/mp4">
</video>
</div>
</body>
</html>
我在管理面板的视频模型中创建了一个对象,但没有显示其标题。
这是我的观点。py
def index(request):
movie_list = Video.objects.order_by('id')
context = {'video_list': movie_list}
return render(request, template_name='uploadvideos/index.html', context=context)
def movie(request, movie_id):
movie = get_object_or_404(Video, title=movie_id)
context = {'movie': movie}
# return HttpResponse(f"You're viewing {movie.title}")
return render(request, template_name=f'uploadvideos/{movie.title}/movie.html', context=context)
答案 0 :(得分:0)
如果 str ()返回self.title,则您应仅在模板中使用{{video}} 您还需要将对象传递到views.py
中的模板答案 1 :(得分:0)
您要传递一个名为movie
的对象,因此应在模板{{ movie.title }}
中使用它。
但是我不太明白你在这里做什么。您的模板路径意味着每个视频都有单独的模板,这确实很奇怪。您似乎已经错过了模板的要点。模板应该是通用的,所有数据都应来自上下文。如果每个视频都有单独的模板,则最好对所有内容进行硬编码。