如何在 django 的基于类的视图中将值传递给模板?
Posted
技术标签:
【中文标题】如何在 django 的基于类的视图中将值传递给模板?【英文标题】:How to pass a value to the template in class based views in django? 【发布时间】:2020-12-23 19:34:36 【问题描述】:我想将变量的值发送到PostDetail
模板,
这是views.py
文件的功能
class PostDetailView(DetailView):
model = Post
def get_object(self):
obj = super().get_object()
obj.view_count += 1
obj.save()
return obj
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(**kwargs)
texts = self.object.content
Read_Time=get_read_time(texts)
print(Read_Time)
return context
这是终端的输出:-
[04/Sep/2020 19:29:04] "GET /post/this-blog-contains-an-image-with-it/ HTTP/1.1" 200 6089
0:02:00
[04/Sep/2020 19:29:24] "GET /post/this-blog-contains-an-image-with-it/ HTTP/1.1" 200 6089
我想将0:02:00
发送到我的模板,我该如何实现?
【问题讨论】:
这能回答你的问题吗? Django passing variables to templates from class based views 【参考方案1】:我更愿意在 Post
模型中创建一个方法为
class Post(models.Model):
# your fields
def read_time(self):
return get_read_time(self.content)
然后你可以通过
访问模板中的读取时间 object<b>.read_time</b>
【讨论】:
以上是关于如何在 django 的基于类的视图中将值传递给模板?的主要内容,如果未能解决你的问题,请参考以下文章
基于 Django 类的“method_splitter” - 分别传递 2 个 slug 作为模型名称和字段值