首页
学习
活动
专区
工具
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.2K60
  • django之评论系统及多级评论

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

    6.9K61

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

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

    2.2K30

    第 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.7K20

    基于类的通用视图: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 值。...Ppk>[0-9]+)/这个正则表达式,而正则表达式部分会被后面传入的参数 pk 替换,所以,如果 Post 的 id(或者 pk,这里 pk 和 id 是等价的) 是 255 的话,那么 get_absolute_url...,它根据我们从 URL 捕获的文章 id(也就是 pk,这里 pk 和 id 是等价的)获取数据库中文章 id 为该值的记录,然后传递给模板。...注意这里我们用到了从 django.shortcuts 模块导入的 get_object_or_404 方法,其作用就是当传入的 pk 对应的 Post 在数据库存在时,就返回对应的 post,如果不存在

    5.7K91

    博客文章详情页

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

    1.5K70

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

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

    45530

    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

    56520

    七日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增加评论功能(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.2K40

    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.py的post_comments方法。

    3.1K20

    第 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/id>/', 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

    Django-REST:002-API接口序列化

    RESTful风格下,比较充分的利用了HTTP1.1标准中规定的集中请求方式 l GET:用于提交向服务器获取数据的请求 l POST:用于提交数据给服务器进行数据更新的请求 l PUT:用于提交数据给服务器进行数据添加的请求...创建案例项目 执行命令创建项目 django-admin startproject myrest_ex02 进入项目根目录中,执行命令创建一个应用:用于进行代码文件描述的应用 django-admin...数据模型定义 打开snippet应用的数据模型定义模块models.py,添加一个定义代码描述的类型 from django.db import models from pygments.lexers...数据模型序列化处理 在snippet应用中,添加一个序列化模块,用于进行数据模型对象的序列化操作 在myrest_ex02/snippet/目录下创建文件:serializers.py # coding...(1) 数据列表接口函数——snippet_list 打开项目应用的视图处理模块:snippet.views 开发数据列表接口函数 from django.http import HttpResponse

    1.3K20
    领券