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

如何将评论链接到其在Django中的对应帖子?

在Django中,可以通过使用外键来将评论链接到其对应的帖子。以下是一种实现方法:

  1. 首先,在评论模型中添加一个外键字段,将其与帖子模型关联起来。假设你的帖子模型名为Post,评论模型名为Comment,可以在评论模型中添加如下字段:
代码语言:txt
复制
from django.db import models

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE)
    # 其他评论字段...
  1. 确保在帖子模型中定义了一个主键(通常是自动生成的id字段)。假设你的帖子模型如下:
代码语言:txt
复制
from django.db import models

class Post(models.Model):
    id = models.AutoField(primary_key=True)
    # 其他帖子字段...
  1. 在视图函数中,当创建评论时,需要将对应的帖子与评论关联起来。假设你有一个用于创建评论的视图函数:
代码语言:txt
复制
from django.shortcuts import render, get_object_or_404
from .models import Post, Comment

def create_comment(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    # 处理评论表单提交的数据...
    comment = Comment(post=post, content=comment_content)  # 假设comment_content是评论内容
    comment.save()
    # 其他处理...

在这个视图函数中,通过get_object_or_404函数获取对应id的帖子对象,然后将该帖子对象与评论对象关联起来。

  1. 在模板中,可以通过使用帖子对象的id来构建评论链接。假设你有一个帖子详情页的模板:
代码语言:txt
复制
<!-- 帖子详情页模板 -->
<h1>{{ post.title }}</h1>
<p>{{ post.content }}</p>

<!-- 显示评论 -->
{% for comment in post.comment_set.all %}
    <p>{{ comment.content }}</p>
{% endfor %}

<!-- 创建评论表单 -->
<form action="{% url 'create_comment' post.id %}" method="post">
    {% csrf_token %}
    <!-- 其他评论表单字段... -->
    <input type="submit" value="发表评论">
</form>

在这个模板中,通过post.id构建了创建评论表单的action链接,将评论链接到对应的帖子。

这样,当用户提交评论时,评论将与对应的帖子关联起来,并在帖子详情页中显示出来。

关于Django的更多信息,你可以参考腾讯云的产品介绍页面:腾讯云Django产品介绍

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

相关·内容

基于类的通用视图:ListView 和 DetailView

在开发网站的过程中,有一些视图函数虽然处理的对象不同,但是其大致的代码逻辑是一样的。比如一个博客和一个论坛,通常其首页都是展示一系列的文章列表或者帖子列表。...对处理首页的视图函数来说,虽然其处理的对象一个是文章,另一个是帖子,但是其处理的过程是非常类似的。首先是从数据库取出文章或者帖子列表,然后将这些数据传递给模板并渲染模板。...在 Django 中 URL 模式的配置方式就是通过 url 函数将 URL 和视图函数绑定。...这部分对应着 detail 视图函数中生成评论表单、获取 post 下的评论列表的代码部分。这个方法返回的值是一个字典,这个字典就是模板变量字典,最终会被传递给模板。...将问题的详细描述通过邮件发送到 djangostudyteam@163.com,一般会在 24 小时内回复。 在 Pythonzhcn 社区的新手问答版块 发布帖子。

2.6K70

第15篇-使用Django进行ElasticSearch的简单方法

在搜索了如何使用Django正确实现ElasticSearch的很长时间之后,我并没有真正找到令人满意的答案。似乎正在采取不必要的步骤来将数据索引到ElasticSearch中。...我们将很快讨论一些示例,但是首先我需要阐明我们要完成的工作: ● 在我们的本地计算机上设置ElasticSearch并确保其正常运行 ● 设置一个新的Django项目 ● 批量索引数据库中已经存在的数据...现在,您应该可以在那里看到您的Blog帖子模型。继续并在管理员中创建您的第一篇博客文章。 恭喜,您现在有了一个可正常运行的Django项目!终于是时候玩有趣的东西了–连接ElasticSearch。...然后,您将生成器传递给常规数据库中 actions= 所有 BlogPost 对象并对其进行迭代,并 .indexing() 在每个对象上调用方法。为什么要使用发电机?...我解释了如何将Django模型连接到ElasticSearch进行索引和搜索,但是ElasticSearch可以做很多事情。

5.3K00
  • 【Django | 爬虫 】收集某吧评论集成舆情监控(附源码)

    ···· }, ···· ] } 建立如下表以存贮舆情数据: 贴吧用户 ( 从评论中获取) a...."django_apscheduler", ) apscheduler 存在数据库依赖. migrate 一下 会在数据库中生成两行表 表结构在下面的使用中再说 4.3 简单的原理解释 注册后的任务会根据...url 4.5 执行结果查看 在admin 里面查看也较为方便, 对 admin 进行了相应的封装方便过滤啥的, 以及状态清晰 django_apscheduler_djangojob 表保存注册的任务以及下次执行的时间...4.6 其他问题 APScheduler 在 uwsgi 环境下会有存在复数个进程同时启用的问题, 从而重复执行占用资源 解决方式 姊妹篇, 最后面使用socket解决了该问题 舆情监测(某吧评论定期生成词云图...) django定时任务没有运行 原因:创建了一个app,但是没有运行,这是因为这个app的view只有一个函数,没有连接在django进程,没有经过该view, 解决方式: 在任意django进程中添加

    1.2K30

    如何启用和连接Django管理界面

    介绍 在本教程中,我们将连接并启用Django管理站点,以便您可以管理您的博客网站。Django管理站点预先构建了一个用户界面,旨在允许您和其他受信任的个人管理网站的内容。...在本教程中,我们将使用用户名admin_user,电子邮件sammy@example.com和密码创建一个管理员帐户admin123。您应使用自己的喜好填写此信息,并确保使用您将记住的安全密码。...[管理页面] 接下来,我们需要将我们的博客应用程序连接到管理面板。 第四步 - 为帖子和评论创建URL模式 在上一步中,我们已成功登录管理界面,但您可能已经注意到我们的博客应用仍然无法看到。...第五步 - 将博客应用程序连接到管理员 将我们的博客连接到管理员将允许我们查看管理仪表板内部Posts和Comments内部的链接。...结论 在本教程中,您已成功启用管理界面,创建了管理员登录,并使用管理员注册了Post和Comment模型。Django管理界面是您可以使用您的博客创建帖子和监控评论的方式。

    2.8K80

    Django -- 视图是啥?模板是何物?

    前言 在Django的官方文档中是这么定义视图的: "一类具有相同功能和模板的网页的集合",概念比较抽象,我们直接 拿比较简单常见论坛网站来举例,可能要求创建以下视图: 论坛首页 -- 列表页面,由时间先后倒叙展示新建的帖子...帖子详情 -- 详细展示帖子内容 评论处理 -- 为帖子增加评论的操作 在Django 中,系统所展示的页面和其他内容都是由视图派生而来,每一个视图可以表现为一个简单的Python函数,如果是基于类的视图的...,则是对应的类中的一个方法。...在Django中,千万不要把视图理解为前端展示给我们的页面,请大家回顾下Django的MTV 模式。...注意其语法格式: demo_app:detail 是指 在 demo_app 应用的 urls.py 文件中 name=detail的路由规则。 cat.id 则是传入的参数 以空格隔开。

    1.1K20

    统计各个分类下的文章数

    当 Django 要查询某篇 post 对应的分类时,比如 post 1,首先查询到它分类的 id 为 1,然后 Django 再去 Category 表找到 id 为 1 的那一行,这一行就是 post...category 1 在 Category 表中对应的 id 是 1,Django 就在 Post 表中搜索哪些行的 category_id 为 1,发现前 3 行都是,把这些行取出来就是 category...把这个统计数字保存到每一条 Category 的记录就可以了(当然并非保存到数据库,在 Django ORM 中是保存到 Category 的实例的属性中,每个实例对应一条记录)。...: from django.db.models.aggregates import Count from blog.models import Tag # Count 计算分类下的文章数,其接受的参数为需要计数的模型的名称...简单问题在下方评论区留言。 在 Pythonzhcn 社区的新手问答版块 发布帖子。 在 Pythonzhcn 社区的新手问答版块 发布帖子。

    99140

    Flask VS Django:为什么Flask可能会更好

    Flask和Django是Python最流行的两个Web框架(尽管还有更多 )。 在这篇文章中,我将讨论在Flask和Django之间进行选择时应该考虑的一些要点。...在Django中运行比在Flask中运行更复杂的Web应用程序(例如处理和验证用户输入并将其存储在数据库中)的Web应用程序可能需要更少的时间和精力。...我们使用正则表达式匹配特定URL,并将这些URL链接到views.py脚本中的函数。...在这种情况下,我们设置一个模式,它匹配一个空URL(如Flask中的“/” - 换句话说,我们的应用程序的默认页面),并将它链接到我们之前写的views.index函数。...最后的评论 在这篇文章中,我介绍了Flask和Django,然后对两者进行了简短的比较,接着展示了如何使用每个框架构建一个“Hello World”应用程序。

    8.5K20

    评论

    关于创建应用以及 Django 的目录结构在 建立 Django 博客应用 中已经有过介绍。创建新的应用后一定要记得在 settings.py 里注册这个应用,Django 才知道这是一个应用。...我们知道每一个 URL 对应着一个 Django 的视图函数,于是 Django 调用这个视图函数,我们在视图函数中写上处理用户通过表单提交上来的数据的代码,比如验证数据的合法性并且保存数据到数据库中,...Django 的表单功能就是帮我们完成上述所说的表单处理逻辑,表单对 Django 来说是一个内容丰富的话题,很难通过教程中的这么一个例子涵盖其全部用法。...如果表单对应有一个数据库模型(例如这里的评论表单对应着评论模型),那么使用 ModelForm 类会简单很多,这是 Django 为我们提供的方便。...和处理 index 页面的文章列表方式是一样的,我们在模板中通过 {% for %} 模板标签来循环显示文章对应的全部评论内容。

    3.2K60

    自定义认证后台

    下面是 Django 内置的认证后台的部分源代码,从代码中可以清晰地看到其工作方式: django.contrib.auth.backends class ModelBackend(object):...Email Backend 在本示例项目中,用户注册时需要填写邮箱。因为 Django auth 应用内置只支持用户名和密码的认证方式,所以目前用户是无法使用 Email 进行登录的。...配置 Backend 接下来就要告诉 Django,需要使用哪些 Backends 对用户的凭据信息进行验证,这需要在 settings.py 中设置: settings.py AUTHENTICATION_BACKENDS...总结 本教程的示例项目代码位于 GitHub:Django Auth Example。 如果遇到问题,请通过下面的方式寻求帮助。 在下方评论区留言。...在 Pythonzhcn 社区的新手问答版块 发布帖子。 更多 Django 相关教程,请访问我的个人博客:追梦人物的博客。

    89180

    简单全文搜索

    整个搜索的过程如下: 用户在搜素框中输入搜索关键词,假设为 “django”,然后用户点击了搜索按钮提交其输入的结果到服务器。...用户通过表单 get 方法提交的数据 Django 为我们保存在 request.GET 里,这是一个类似于 Python 字典的对象,所以我们使用 get 方法从字典里取出键 q 对应的值,即用户的搜索关键词...这里 icontains 是查询表达式(Field lookups),我们在之前也使用过其他类似的查询表达式,其用法是在模型需要筛选的属性后面跟上两个下划线。...此外我们这里从 from django.db.models 中引入了一个新的东西:Q 对象。Q 对象用于包装查询表达式,其作用是为了提供复杂的查询逻辑。...简单问题在下方评论区留言。 在 Pythonzhcn 社区的新手问答版块 发布帖子。

    1.9K60

    Django 官方推荐的姿势:类视图

    比如一个博客和一个论坛,通常其首页都是展示一系列的文章列表或者帖子列表。...对处理首页的视图函数来说,虽然其处理的对象一个是文章,另一个是帖子,但是其处理的过程是非常类似的:首先是从数据库取出文章或者帖子列表,然后将这些数据传递给模板并渲染模板。...'index'), ... ] 前面已经说过每一个 URL 对应着一个视图函数,这样当用户访问这个 URL 时,Django 就知道调用哪个视图函数去处理这个请求了。...在 Django 中 URL 模式的配置方式就是通过 url 函数将 URL 和视图函数绑定。...这对应着 detail 视图函数中根据文章的 id(也就是 pk)获取文章,然后对文章的 post.body 进行 Markdown 解析的代码部分。

    1.3K20

    Django站内消息通知

    django-comments库的路径同样在Python安装目录的Lib/site-packages中。由于我对该库修改比较多,已经复制全部代码到我的Django项目中。...在signals中获取被评论的对象就是通过comment获取,当然该代码不是我写的,参考comments.py的post_comments方法。...记录target是为了知道评论哪篇博客;记录action_object是为了将评论和消息一一对应,才可根据评论对象找到对应的消息对象。 3、获取消息 上面的参数recipient是希望谁接到通知。...原本评论在邮件通知的链接如下: /subject/3#F168 #号前半部分是具体页面;F168是执行评论的锚点位置,在打开页面中得到该值并定位到评论位置。...前面将评论和消息通过该对象一一对应关联,所以在发送邮件通知的时候,通过评论id获取对应的消息通知id。

    3.1K20

    深入探寻Engagement奥秘 - 6个核心指标

    在本文中,我首先将分享6个须在整个渠道中衡量的Engagement指标,在下一篇关于Engagement的系列文章中我将会继续分享优化这些的策略,从而最终帮助你优化营销业绩。 1....对话率的计算公式如下: 总评论数/关注者数* 100 =对话率 例如,有30条评论的帖子可能对一些人来说似乎是不太重要的帖子,但是对于只有250个喜欢的Facebook页面来说,这个数字将变得很有意义。...考虑到这一点,计算对话率的另一种方式是依据覆盖面的: 总评论数/达到率* 100 =对话率 通过以上计算,我们就可以根据实际测算到你帖子的用户数(即总展示次数)来衡量用户的参与度。...导入链接:使用网站管理员工具或Ahrefs可以监测哪些网页会链接到你的网站。 评论:像GetApp和Trustpilot这样的网站可以帮助了解用户如何评价你品牌的产品和服务。 5....结论 虽然Engagement通常与“虚度指标”相关联,但其仍然可以作为一场成功营销的关键指标。 事实上你的用户同时在不同的平台上活跃,不只是博客,社交平台或网站。

    2.1K90

    已知小问题修正

    Django 允许我们在 models.Model 的子类里定义一个 Meta 的内部类,这个内部类通过指定一些属性来规定这个类该有的一些特性,例如在这里我们要指定 Post 的排序方式。...这样指定以后所有返回的文章列表都会自动按照 Meta 中指定的顺序排序,因此可以删掉视图函数中对文章列表中返回结果进行排序的代码了。...将评论量替换成该模板变量就可以正确显示文章的评论数了。 结束了么 我们通过一个博客实战项目,了解了 Django 基本的开发技术。...这些需求都可以利用 Django 提供的 API 来实现。 另外,Django 还有海量的第三方应用来提供更加丰富的功能。比如当他人评论了我的文章时,如何收到通知提醒?...在下方评论区留言。 将问题的详细描述通过邮件发送到 djangostudyteam@163.com,一般会在 24 小时内回复。 在 Pythonzhcn 社区的新手问答版块 发布帖子。

    1.2K40

    分类与归档

    注意这里 created_time 是 Python 的 date 对象,其有一个 year 和 month 属性,我们在 页面侧边栏:使用自定义模板标签 使用过这个属性。...Python 中类实例调用属性的方法通常是 created_time.year,但是由于这里作为函数的参数列表,所以 Django 要求我们把点替换成了两个下划线,即 created_time__year...两个括号括起来的地方是两个命名组参数,Django 会从用户访问的 URL 中自动提取这两个参数的值,然后传递给其对应的视图函数。...blog:archives 对应的 URL 模式,并把 URL 模式中的年和月替换成 date.year,date.month 的值。...在下方评论区留言。 将问题的详细描述通过邮件发送到 djangostudyteam@163.com,一般会在 24 小时内回复。 在 Pythonzhcn 社区的新手问答版块 发布帖子。

    1.4K90

    第21篇-使用Django进行ElasticSearch的简单方法

    我们将很快讨论一些示例,但首先我需要阐明我们要完成的工作: ● 在我们的本地计算机上设置ElasticSearch并确保其正常运行 ● 设置一个新的Django项目 ● 批量索引数据库中已经存在的数据...现在,您应该可以在此处看到您的Blog帖子模型。继续并在管理员中创建您的第一篇博客文章。 恭喜,您现在有了一个可正常运行的Django项目!终于是时候玩有趣的东西了–连接ElasticSearch。...将ElasticSearch与Django连接 您首先需要search.py在elasticsearchapp目录中创建一个新文件。这是ElasticSearch代码的所在地。...然后,您将生成器传递到常规数据库中 所有BlogPost对象并对其进行迭代,并.indexing()在每个对象上调用方法。为什么要使用发电机?...我解释了如何将Django模型连接到ElasticSearch进行索引和搜索,但是ElasticSearch可以做很多事情。

    3.3K00
    领券