사용자 정의 장고 설명 응용 프로그램
-
12-12-2019 - |
문제
는 데 문제가 있으로 사용자 정의 장고 의견 framework.필요를 추가하'회사'다.나는 다음의 문서와 정말 점점 어디서나.그것은 지역에서 작업하기 때문에 추가 COMMENTS_APP='comments_app'나 settings.py 는'의견에'응용 프로그램 사라져서 관리 인터페이스를 제공합니다.하려고 할 때과 코멘트를 작성하는 그 회사는 분야는 그 요청에 대한 귀하의 이메일 url 등입니다.
고 싶을 볼 수 있도록 모든 의견 관리자 패널에 회사와 함께 필드를 추가했습니다.
필요성 admin.py 또는 있게 됐다고 누락된 부분이 있나요?
여기에는 나의 코드가 내 의견 맞춤형 응용 프로그램:
//MODELS
from django.db import models
from django.contrib.comments.models import Comment
class CommentWithAddedFields(Comment):
company = models.CharField(max_length=300)
//FORMS.py
from django import forms
from django.contrib.comments.forms import CommentForm
from comments_app.models import CommentWithAddedFields
class CommentFormWithAddedFields(CommentForm):
company = forms.CharField(max_length=300)
def get_comment_model(self):
return CommentWithAddedFields
def get_comment_create_data(self):
data = super(CommentFormWithAddedFields, self).get_comment_create_data()
data['company'] = self.cleaned_data['company']
return data
//__init.py
from comments_app.models import CommentWithAddedFields
from comments_app.forms import CommentFormWithAddedFields
def get_model():
return CommentWithAddedFields
def get_form():
return CommentFormWithAddedFields
추가에 나 settings.py 파일에 추가 COMMENTS_APP='comments_app'로 위에서 언급된다.
도 나는 뭔가?
감사
해결책
예,당신은 당신을 만들 필요가 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)
제휴하지 않습니다 StackOverflow