You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django后台的Posts/单篇文章中注册关联该文章的Comments模型?

Django后台文章页嵌入关联评论的实现方法

完全可行,用Django自带的内联(Inline)Admin功能就能实现,把评论模型作为文章模型的内联组件,直接嵌入到单篇文章的管理页面中,不用再单独设置评论的管理板块。

具体实现步骤:

1. 确保模型关联正确

首先你的Comment模型要通过外键关联到Post模型,示例模型代码:

# models.py
from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    # 文章的其他字段,比如发布时间等

class Comment(models.Model):
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
    author = models.CharField(max_length=100)
    text = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

2. 配置Admin内联组件

在admin.py里定义评论的内联类,然后把它注册到文章的Admin类中:

# admin.py
from django.contrib import admin
from .models import Post, Comment

# 定义评论内联,可选TabularInline(表格式)或StackedInline(堆叠式)
class CommentInline(admin.TabularInline):
    model = Comment
    extra = 1  # 默认显示1个空的评论表单,方便添加新评论
    readonly_fields = ('created_at',)  # 把创建时间设为只读,避免修改

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    # 把评论内联加入文章管理页面
    inlines = [CommentInline]
    # 这里可以添加文章的其他Admin配置,比如列表显示字段
    list_display = ('title',)

3. 效果说明

配置完成后,进入Django后台编辑任意一篇文章时,文章字段下方会直接显示该文章的所有评论列表,你可以直接在这个页面新增、编辑、删除关联的评论,完全不需要单独的评论管理板块。

如果不想显示空的评论表单,把extra的值设为0即可;也可以通过fields参数自定义显示哪些评论字段,比如:

class CommentInline(admin.TabularInline):
    model = Comment
    fields = ('author', 'text', 'created_at')
    readonly_fields = ('created_at',)
    extra = 0

内容的提问来源于stack exchange,提问作者Adryan Zeigler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 18:25:47