2010-08-17 12 views
0

在James Bennett的」實踐django項目「(第二版)中,作者利用django.contrib.admin構建了一個內容管理系統,問題在於它沒有」 t工作「實用的django項目,第二版,源代碼

我在第三章,他添加了一個關鍵字搜索功能,通過添加一個新的管理模塊,問題是我無法得到它的工作瀏覽網絡,我發現不斷有人抱怨說,儘管書中有這些聲明,但作者並沒有提供工作資源,問題的核心在於他似乎依賴於django平臺的內部功能,隨着每次次要版本的改變,它的內部變化,因此他的解決方案證明是脆弱的。

不過,我想通過這種方式工作。

在第三章中,他假設通過創建一個新的SearchKeyword模型,然後創建並註冊一個SearchKeywordAdmin類,添加一個新的搜索關鍵字admin函數。

的模型(CMS /搜索/ models.py:

class SearchKeyword(models.Model): 
    keyword = models.CharField(max_length=50) 
    page = models.ForeignKey(FlatPage) 

    def __unicode__(self): 
     return self.keyword 

類(在CMS /搜索/ admin.py):

class SearchKeywordAdmin(admin.ModelAdmin): 
    pass 

admin.site.register(SearchKeyword, SearchKeywordAdmin) 

我看不出有任何編譯錯誤,但我看到管理頁面上什麼都沒有。

無論我在做django.contrib.admin一些錯誤,或者有些事情已經改變,使這個代碼不再工作。

任何人有任何想法?我可能需要做些什麼才能做到這一點?

+0

谷歌出現了這個:http://mitchfournier.com/2010/03/08/errata-practical-django-projects-2nd-edition-pdf/那是你在找什麼? – 2010-08-17 12:48:08

+0

根據當前的django文檔來源是正確的。其實,它看起來就像那裏的例子;) http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin – tux21b 2010-08-17 12:52:01

回答

1

我在Ubuntu Jaunty上用Django 1.2.1和Python 2.6.2試過了你的代碼。按照預期,該模型顯示在管理員屏幕上。你能發表更多關於你正在使用的Django/Python版本的細節嗎?

+0

我正在運行Lucid,與存儲庫爲我提供的django和Python版本。我沒有檢查版本。 我在上班前發佈了這個消息,直到今天晚上我都無法回覆。 當我這樣做,我會檢查版本。這可能是我得到了django的1.0版本,如果是的話,我會看到關於最新的。 如果不是這樣,我會從上面提到的兩個網站下載代碼,然後嘗試一下。如果其中一方有效,那麼我會對我的代碼進行比較,看看我能否確定我做錯了什麼。 謝謝。 – 2010-08-17 14:57:14

2

你的代碼對我來說看起來很健康,所以你沒有發佈的東西是錯誤的。

您是否需要輸入所有內容?

  • models.py需求django.db.models和(從django.contrib.flatpages.FlatPage大概)FlatPage
  • admin.py需求from django.contrib import adminfrom cms.search.models import SearchKeyword

cms.searchINSTALLED_APPS設置?

0

你有:

from django.contrib import admin 
admin.autodiscover() 

urls.py?也是這樣的:

urlpatterns = patterns('', 
    ... 
    (r'^admin/', include(admin.site.urls)), 
) 

而且你還打開了管理應用程序的設置?

INSTALLED_APPS = (
    ... 
    'django.contrib.admin', 
) 
0

您可能需要再次運行manage.py runserver以允許管理部分重置。