2011-12-17 2 views
0

그래서 내 블로그 애플리케이션에 Djangos 빌트인 주석 app (django.contrib.comments)를 사용하고 있습니다. 양식 디스플레이 등을 여러 번 변경했습니다 (설명서에 설명 된대로). 날 귀찮게 마지막 한가지는 댓글 모델과 같이, 관리자에 자신의 범주에 있다는 것이다 :사용자 정의 django comments admin slot

MyApp
---Model1
---Modle2

Comments
---Comments

내가 의견이 MyApp를 모델에 연결되어 있기 때문에이 같이되고 싶어요.

MyApp
---Model1
---Modle2
---Comments

나는 (주석 클래스 덮어 쓰기)

class MyAppComment(Comment): 

    class Meta(Comment.Meta): 
     app_label = 'myapp' 

admin.site.unregister(Comment) 
admin.site.register(MyAppComment, CommentsAdmin) 

을하려면 MyApps admin.py에 코드 줄을 추가하여이를 달성하기 위해 노력 그리고이 작품 (그리고 댓글 모델하려면 MyApps 아래에 표시)하지만,

: 오류를 출력

http://www.mysite.com/admin/myapp/myappcomment/

: 이제 링크에 모델 점은 ... 잘못

대신 :

http://www.mysite.com/admin/comments/comment/

이것은이 난 그냥 관리자의 댓글 모델의 위치를 ​​변경하지만 URL을 떠날 수있는 방법을 응용 프로그램 이름과 모델 이름 ...에 따라 URL을의 관리자 양식 때문에 그들은 그대로?

어떻게해야합니까?

+0

실행 manage.py syncdb가 있습니까? – benjaoming

+0

그래 ... 그 (데이터베이스를 삭제하고 처음부터 시작) ... 같은 오류 – Veles

답변

0

Comment 클래스를 '덮어 쓰지'않았습니다. 하위 클래스로 분류하면 실제로는 multi table inheritance을 사용하여 하위 모델을 만들었습니다. 이것이 다른 테이블을 생성해야하는 이유입니다.

Comment 클래스에서 상속받은 proxy model을 만들면 추가 테이블을 만들 필요가 없습니다.

class MyAppComment(Comment): 

    class Meta(Comment.Meta): 
     proxy = True 

admin.site.unregister(Comment) 
admin.site.register(MyAppComment, CommentsAdmin) 

당신은 MyAppCommentmyapp 응용 프로그램에 정의되어있는 경우 app_label를 설정할 필요가 없습니다 -이 자동으로 설정됩니다.

+0

잘 했어 ... 고마워! – Veles

관련 문제