定制Django评论应用程序

2024-10-03 09:12:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我在定制django评论框架时遇到了问题。我需要添加一个“公司”字段。我一直在看文件,但没什么进展。它离工作不远了,因为当我将COMMENTS_APP='COMMENTS_APP'添加到我的设置.py“评论”应用程序从管理界面消失。当我试着写一个评论时,它会出现一个公司字段,它会要求你的电子邮件、网址等

我想能够在管理面板中查看所有的评论以及我添加的公司字段。在

我需要创建一个管理员py或者我只是少了点东西?在

以下是我的自定义评论应用程序代码:

//模型

 from django.db import models
    from django.contrib.comments.models import Comment

    class CommentWithAddedFields(Comment):
        company = models.CharField(max_length=300)

在//表单.py在

^{pr2}$

在//__初始py在

from comments_app.models import CommentWithAddedFields
from comments_app.forms import CommentFormWithAddedFields

def get_model():
    return CommentWithAddedFields


def get_form():
    return CommentFormWithAddedFields

我已经在我的设置.py上面提到的评论和U应用。在

我错过什么了吗?在

谢谢


Tags: djangofrompyimportappmodelsdefcomment
1条回答
网友
1楼 · 发布于 2024-10-03 09:12:28

是的,如果你想让你的模型出现在django管理中,你需要为你的自定义评论应用创建一个admin.py。您应该能够将CommentsAdmin子类化,并根据需要进行自定义。在

from django.contrib import admin
from django.utils.translation import ugettext_lazy as _, ungettext
from django.contrib.comments.admin import CommentsAdmin
from django.contrib.comments import get_model

from comments_app.models import CommentWithAddedFields

class MyCommentsAdmin(CommentsAdmin):
    # Same fieldsets as parent admin, but include 'company'
    fieldsets = (
        (None,
           {'fields': ('content_type', 'object_pk', 'site')}
        ),
        (_('Content'),
           {'fields': ('user', 'user_name', 'user_email', 'user_url', 'company', 'comment')}
        ),
        (_('Metadata'),
           {'fields': ('submit_date', 'ip_address', 'is_public', 'is_removed')}
        ),
     )

# Only register the admin if the comments model is CommentWithAddedFields
# The equivalent section in django.contrib.comments.admin is what prevents 
# the admin from being registered when you set COMMENTS_APP = 'comments_app' 
# in your settings file
if get_model() is CommentWithAddedFields:
    admin.site.register(CommentWithAddedFields, MyCommentsAdmin)

相关问题 更多 >