首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django -访问评论模型中Post模块的pk/id

Django是一个基于Python的开源Web应用框架,它提供了一套完整的开发工具和功能,用于快速构建高效、安全的Web应用程序。

在Django中,访问评论模型中Post模块的pk/id可以通过以下步骤实现:

  1. 首先,在Django项目中创建一个评论模型和一个Post模型。评论模型可以包含字段如comment_id、content等,而Post模型可以包含字段如post_id、title等。
  2. 在评论模型中,可以通过外键关联Post模型,以建立评论和对应的文章之间的关系。可以使用Django提供的ForeignKey字段来实现这一关联。
  3. 在视图函数或类中,可以通过获取评论对象的pk/id来访问评论模型中Post模块的pk/id。可以使用Django提供的get方法或filter方法来获取评论对象,然后通过点操作符访问关联的Post对象的pk/id。

以下是一个示例代码:

代码语言:txt
复制
from django.db import models

class Post(models.Model):
    post_id = models.AutoField(primary_key=True)
    title = models.CharField(max_length=100)
    # 其他字段...

class Comment(models.Model):
    comment_id = models.AutoField(primary_key=True)
    content = models.TextField()
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    # 其他字段...

# 在视图函数或类中获取评论对象的pk/id,并访问关联的Post对象的pk/id
def get_comment(request, comment_id):
    comment = Comment.objects.get(comment_id=comment_id)
    post_id = comment.post.post_id
    # 其他操作...

在上述示例中,通过Comment模型的外键字段post建立了与Post模型的关联。在视图函数get_comment中,通过获取评论对象的comment_id,然后通过comment.post.post_id访问关联的Post对象的pk/id。

对于Django的更多详细信息和使用方法,可以参考腾讯云的Django产品介绍页面:Django产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Django搭建blog网站(二)

两个括号括起来地方是两个命名组参数,Django 会从用户访问 URL 自动提取这两个参数值,然后传递给其对应视图函数。...post_list}) 这里我们首先根据传入 pk 值(也就是被访问分类 id 值)从数据库获取到这个分类。....设计评论数据库模型  用户评论数据必须被存储到数据库里,以便其他用户访问Django 能从数据库取回这些数据然后展示给访问用户,因此我们需要为评论设计数据库模型,这和设计文章、分类、标签数据库模型是一样...这个函数位于 django.shortcuts 模块,它作用是对 HTTP 请求进行重定向(即用户访问是某个 URL,但由于某些原因,服务器会将用户重定向到另外 URL)。...包括如何编写模型(Model)、如何编写视图函数(View)、如何使用 Django 内置模板系统(Template)以及如何配置路由(URL),这四大模块Django 开发核心所在,现在我们已经能够基本掌握这些模块使用方法了

4.5K100

评论

设计评论数据库模型 用户评论数据必须被存储到数据库里,以便其他用户访问Django 能从数据库取回这些数据然后展示给访问用户,因此我们需要为评论设计数据库模型,这和设计文章、分类、标签数据库模型是一样...,如果你忘了怎么做,再回顾一下 创建 Django 博客数据库模型 做法。...如果表单对应有一个数据库模型(例如这里评论表单对应着评论模型),那么使用 ModelForm 类会简单很多,这是 Django 为我们提供方便。...这个函数位于 django.shortcuts 模块,它作用是对 HTTP 请求进行重定向(即用户访问是某个 URL,但由于某些原因,服务器会将用户重定向到另外 URL)。...但既然我们已经有了一个 Post 模型实例 post(它对应Post 在数据库一条记录),那么获取和 post 关联评论列表有一个简单方法,即调用它 xxx_set 属性来获取一个类似于

3.1K60

django评论系统及多级评论

设计评论数据库模型 用户评论数据必须被存储到数据库里,以便其他用户访问Django 能从数据库取回这些数据然后展示给访问用户,因此我们需要为评论设计数据库模型,这和设计文章、分类、标签数据库模型是一样...,如果你忘了怎么做,再回顾一下 创建 Django 博客数据库模型 做法。...如果表单对应有一个数据库模型(例如这里评论表单对应着评论模型),那么使用 ModelForm 类会简单很多,这是 Django 为我们提供方便。...这个函数位于 django.shortcuts 模块,它作用是对 HTTP 请求进行重定向(即用户访问是某个 URL,但由于某些原因,服务器会将用户重定向到另外 URL)。...但既然我们已经有了一个 Post 模型实例 post(它对应Post 在数据库一条记录),那么获取和 post 关联评论列表有一个简单方法,即调用它 xxx_set 属性来获取一个类似于

6.8K61

基于django视频点播网站开发-step5-详情页功能

网页侧栏是推荐视频列表,这里使用推荐逻辑比较简单,就是推荐观看次数最多视频。 我们把详情页分为4个小业务模块来开发,分别是:视频详情显示、喜欢和收藏功能、评论功能、推荐功能。...下面我们分别对这四个功能模块进行开发讲解。 视频详情显示 因为在上一讲,我们已经建立了video模型,所以不必再新建模型,我们就在video模型基础上进行扩展。...(), name='detail')即表示详情信息,注意每条视频都是有自己主键,所以设置路径匹配为detail//,其中表示主键,这是django中表示主键一种方法...这样我们就可以在浏览器输入127.0.0.1:8000/video/detail/xxx来访问详情了。 怎么显示详情呢,聪明django为我们提供了DetailView。...w=1000&h=705&f=png&s=102509] 评论功能是一个独立模块,该功能通用性较高,在其他很多网站中都有评论功能,为了避免以后开发其他网站时重复造轮子,我们建立一个新应用,命名为comment

2.1K30

第 14 篇:交流桥梁“评论功能”—— HelloDjango 系列教程

name = 'comments' verbose_name = '评论' 设计评论数据库模型 用户评论数据必须被存储到数据库里,以便其他用户访问django 能从数据库取回这些数据然后展示给访问用户...,因此我们需要为评论设计数据库模型,这和设计文章、分类、标签数据库模型是一样,如果你忘了怎么做,再回顾一下 创建 Django 博客数据库模型[2] 做法。...post = get_object_or_404(Post, pk=post_pk) # django 将用户提交数据封装在 request.POST ,这是一个类字典对象。...这个函数位于 django.shortcuts 模块,它作用是对 HTTP 请求进行重定向(即用户访问是某个 URL,但由于某些原因,服务器会将用户重定向到另外 URL)。...但既然我们已经有了一个 Post 模型实例 post(它对应Post 在数据库一条记录),那么获取和 post 关联评论列表有一个简单方法,即调用它 xxx_set 属性来获取一个类似于

1.6K20

基于类通用视图:ListView 和 DetailView

将 index 视图函数改写为类视图 针对这种从数据库获取某个模型列表数据(比如这里 Post 列表)视图,Django 专门提供了一个 ListView 类视图。...然后就是通过一些属性来指定这个视图函数需要做事情。这里我们指定了三个属性。 model。将 model 指定为 Post,告诉 Django 我要获取模型Post。...首先是需要根据从 URL 捕获分类 id(也就是 pk)获取分类,这和 category 视图函数过程是一样。...所以我们使了 self.kwargs.get('pk') 来获取从 URL 捕获分类 id 值。...这对应着 detail 视图函数根据文章 id(也就是 pk)获取文章,然后对文章 post.body 进行 Markdown 渲染代码部分。

2.6K70

Django搭建blog网站(一)

例如这里 {{ post.pk }}(pk 是 primary key 缩写,即 post 对应于数据库记录 id 值,该属性尽管我们没有显示定义,但是 Django 会自动为我们添加)。  ...,也就是数据库 Post 记录 id 值。...P[0-9]+)/这个正则表达式,而正则表达式部分会被后面传入参数 pk 替换,所以,如果 Post  id(或者 pk,这里 pkid 是等价) 是 255 的话,那么 get_absolute_url...,它根据我们从 URL 捕获文章 id(也就是 pk,这里 pkid 是等价)获取数据库中文章 id 为该值记录,然后传递给模板。...注意这里我们用到了从 django.shortcuts 模块导入 get_object_or_404 方法,其作用就是当传入 pk 对应 Post 在数据库存在时,就返回对应 post,如果不存在

5.6K91

博客文章详情页

,也就是数据库 Post 记录 id 值。...P[0-9]+)/$', views.detail, name='detail'), ] Django 使用正则表达式来匹配用户访问网址。这里 r'^post/(?...P[0-9]+)/ 这个正则表达式,而正则表达式部分会被后面传入参数 pk 替换,所以,如果 Post id(或者 pk,这里 pkid 是等价) 是 255 的话,那么 get_absolute_url...', context={'post': post}) 视图函数很简单,它根据我们从 URL 捕获文章 id(也就是 pk,这里 pkid 是等价)获取数据库中文章 id 为该值记录,然后传递给模板...注意这里我们用到了从 django.shortcuts 模块导入 get_object_or_404 方法,其作用就是当传入 pk 对应 Post 在数据库存在时,就返回对应 post,如果不存在

1.4K70

第 08 篇:开发博客文章详情页

这里数字代表了第几篇文章,也就是数据库 Post 记录 id 值。...我们这里必须从 URL 里捕获文章 id,因为只有这样我们才能知道用户访问究竟是哪篇文章。...URL,我们这里 detail 对应规则就是 posts// int 部分会被后面传入参数 pk 替换,所以,如果 Post id(或者 pk,这里 pkid 是等价)...', context={'post': post}) 视图函数很简单,它根据我们从 URL 捕获文章 id(也就是 pk,这里 pkid 是等价)获取数据库中文章 id 为该值记录,然后传递给模板...注意这里我们用到了从 django.shortcuts 模块导入 get_object_or_404 方法,其作用就是当传入 pk 对应 Post 在数据库存在时,就返回对应 post,如果不存在

43030

Django实战-信息资讯-详情页与评论

Django网络应用开发5项基础核心技术包括模型(Model)设计,URL 设计与配置,View(视图)编写,Template(模板)设计和Form(表单)使用。...news = News.objects.select_related('category', 'author').get(pk=news_id) select_related 主要针一对一和多对一关系进行优化...也可以通过使用双下划线“__”连接字段名来实现指定递归查询。没有指定字段不会缓存,没有指定深度不会缓存,如果要访问的话 Django 会再次进行SQL查询。...也可以通过 depth 参数指定递归深度,Django 会自动缓存指定深度内所有的字段。如果要访问指定深度外字段,Django 会再次进行SQL查询。...('content') news_id = form.cleaned_data.get('news_id') news = News.objects.get(pk=news_id

54220

七日Python之路--第十二天(Django Web 开发指南)

可以‘凭空’创造实例属性 (10)正则 ! (11)关于模块 Python有导入模块和加载模块之分。模块可以被导入多次,但只会被加载一次。...对于多对多关系。也可以通过 through = '***' 来指向一个显式中间模型类。在这个类上可以添加额外变量。...(7)使用模型 Django项目中 manage.py 脚本包含了操作数据库功能。syncdb只能保证所有模型类都有对应数据库表,但不会修改已经存在数据库表。...(14)手动抛异常 try: person = Person.objects.get(pk=id) except Person.DoesNotExist...(*args, **kwargs): #这样我们就可以使用,args[0]或kwargs['object_id'] 而不需要再记住 URLconf名称了 ##当然在 Django1.6,完全可以不用在

1.8K20

分类与归档

post_list': post_list}) 主页视图函数我们通过 Post.objects.all() 获取全部文章,而在我们归档和分类视图中,我们不再使用 all 方法获取全部文章,而是使用...': post_list}) 这里我们使用了模型管理器(objects) filter 函数来过滤文章。...Python 类实例调用属性方法通常是 created_time.year,但是由于这里作为函数参数列表,所以 Django 要求我们把点替换成了两个下划线,即 created_time__year...两个括号括起来地方是两个命名组参数,Django 会从用户访问 URL 自动提取这两个参数值,然后传递给其对应视图函数。...post_list}) 这里我们首先根据传入 pk 值(也就是被访问分类 id 值)从数据库获取到这个分类。

1.4K90

基于Django signals 信号作用及用法详解

model:被添加、删除或清除对象pk_set:对于add/remove等,pk_set是一个从关系添加或删除对象主键 集合, 对于clear,pk_set为None 举例说明: 两个实例...”pre_remove”,然后执行上面的remove,再执行”post_remove” reverse:True,本例,是反向操作 model:p pk_set:{p.id} 8)class_prepared...django.db.models.signals.class_prepared 当模型类准备好时发送,即当模型被创建并注册到Django模型系统时。...信号处理程序通常定义在与他们相关应用程序信号子模块,信号接收器连接在我们应用程序配置类ready()方法。...如果使用装饰器方式,我们只需要在reader()中导入signals子模块即可。 值得一提是,在测试过程,我们ready()函数可能不止一次被执行,因此我们要保护我们信号不要被复制。

2K20

·Django增加评论功能(Python3)

django评论库是一个站点,所以需要添加sites应用并设置当前django工程站点id=1 更新数据库 python manage.py migrate 配置urls.py 在 urlpatterns...添加 path(r'^comments/', include('django_comments.urls')), 修改前端页面显示评论列表和评论提交表单 接着,修改前端页面显示评论列表和评论提交表单...这些需要使用django_comments模版标签,在使用标签之前导入加载: {# 导入评论模块模版标签 #} {% load comments %} 评论列表可以通过django_comments...="post" > {% csrf_token %} {# 必须字段 #} {{ blog_form.object_pk }} {{ blog_form.content_type...for="id_honeypot">如果你在该字段输入任何内容,你评论就会被视为垃圾评论

1.1K40

Django站内消息通知

此处不建议直接修改评论库提交评论代码,可使用signals机制处理消息通知。 signals是Django一套信号机制,模型对象操作会产生一系列信号。例如保存前、保存后。...data = request.POST.copy() ctype = data.get("content_type") object_pk = data.get("object_pk..._default_manager.using(None).get(pk=object_pk) # 判断是评论还是回复,设置消息标题 if int(comment.root_id) =...或者你可以查看该库views/comments.py文件post_comment方法。在该方法末尾可看到发送信号代码: 从上图可看到评论保存前后各发送(send)两个信号。...在signals获取被评论对象就是通过comment获取,当然该代码不是我写,参考comments.pypost_comments方法。

3K20

第 15 篇:接口单元测试

单元测试回顾 在上一部教程 Django博客教程(第二版)[1] 单元测试:测试 blog 应用[2]、单元测试:测试评论应用[3]、Coverage.py 统计测试覆盖率[4] ,我们详细讲解了...默认情况下,测试代码需要放在 django 应用 tests.py 文件或者 tests 包里,django 会自动发现 tests 包以 test 开头模块(例如 test_models.py...这里由于评论数据不正确(关联 id 为 999 post 不存在),因此预期返回状态码是 400,同时数据库不应该有创建评论。...数据为评论列表序列化后结果 """ url = reverse("v1:post-comment", kwargs={"pk": self.post3.pk})...,序列化器任何序列化字段均可以通过直接访问 context 属性而间接访问到 _context 属性,从而拿到 request 对象。

1.2K20

Django入门

不同Django版本可以使用对应Python版本 数据库安装(包含除MySQL外其他数据库) 2.安装Django 先创建一个虚拟环境并切换到该虚拟环境,这样保证将Django安装在该虚拟环境...设置模块名为urlpatterns变量,并且按顺序转化模式。...views as todo_views urlpatterns = [ path('temp//', todo_views.temp), ] 复制代码 在浏览器访问...添加数据 当创建了数据模型之后,Django会自动给到一个数据库抽象API,用于进行数据增删改查。一个模型类表示一个数据库表,一个模型类实例代表一个数据库表记录。...在Postman中用GET请求访问http://127.0.0.1:8000/todo/temp/123/,得到: 图-7 用POST请求访问http://127.0.0.1:8000/todo/temp

1.5K00
领券