2011-12-17 106 views
0

因此,我爲我的博客應用程序使用Djangos內置評論應用程序(django.contrib.comments)。我對錶單顯示等進行了一些更改(如文檔中所述)。困擾我的最後一件事是,評論模型是在它自己的類別中的管理,像這樣:自定義django評論管理槽

MyApp
---Model1
---Modle2

Comments
---Comments

我希望它是這樣的,因爲評論是綁到MyApp模型。

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

我試圖加入這一行的代碼安裝MyApps admin.py(覆蓋Comment類)

class MyAppComment(Comment): 

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

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

實現這個和這個工作(和安裝MyApps下的評論模型顯示出來),但現在的鏈接是錯誤的...模型點:

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

,其輸出的錯誤:

代替

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

這是因爲管理的形式是根據應用程序名稱和型號名稱...我怎麼可能只是改變在管理註釋模型的位置,但離開的URL網址像他們那樣?

有一定的辦法可以做到嗎?

+0

你有沒有運行manage.py syncdb? – benjaoming 2011-12-17 18:33:47

+0

是啊...試過(刪除數據庫,從頭開始)...同樣的錯誤 – Veles 2011-12-17 19:32:34

回答

0

您還沒有'覆蓋'Comment類 - 通過繼承它,您實際上使用multi table inheritance創建了子模型。這就是爲什麼需要創建另一個表。

您可以創建proxy model繼承Comment類,然後不需要創建額外的表。

class MyAppComment(Comment): 

    class Meta(Comment.Meta): 
     proxy = True 

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

你不應該需要設置app_label如果MyAppCommentmyapp應用程序定義 - 它會自動設置。

+0

工作很好......謝謝! – Veles 2011-12-18 00:00:48