在James Bennett的“Practical django Projects”(第2版)中,作者构建了一个内容管理系统,利用了django.contrib.admin。问题是它不起作用。
我在第三章,他通过添加新的管理模块添加了关键字搜索功能。问题是我无法让它发挥作用。浏览网页时,我不断抱怨说,尽管书中有说法,但作者还没有提供工作资源。问题的核心在于他似乎依赖于django平台的内部结构,这些内部结构随着每次轻微发布都在变化,因此他的解决方案变得脆弱。
尽管如此,我仍然希望通过这个方法。
在第三章中,他应该添加一个新的搜索关键字admin函数,创建一个新的SearchKeyword模型,然后创建并注册一个SearchKeywordAdmin类。
模型(在cms / search / models.py中:
class SearchKeyword(models.Model):
keyword = models.CharField(max_length=50)
page = models.ForeignKey(FlatPage)
def __unicode__(self):
return self.keyword
该类(在cms / search / admin.py中):
class SearchKeywordAdmin(admin.ModelAdmin):
pass
admin.site.register(SearchKeyword, SearchKeywordAdmin)
我看不到编译错误,但我在管理页面上看不到任何内容。
要么我做错了,或者django.contrib.admin中的某些内容发生了变化,要使此代码不再有效。
任何人都有任何想法吗?我可能需要做些什么才能使其发挥作用?
答案 0 :(得分:2)
您的代码看起来很健康,所以您没有发布的内容是错误的。
您要导入所需的所有内容吗?
models.py
需要django.db.models
和FlatPage
(可能来自django.contrib.flatpages.FlatPage
)admin.py
需要from django.contrib import admin
和from cms.search.models import SearchKeyword
cms.search
设置中有{{1}}吗?
答案 1 :(得分:1)
我在Ubuntu Jaunty上用Django 1.2.1和Python 2.6.2尝试了你的代码。该模型按预期显示在管理屏幕中。你能发布关于你正在使用的Django / Python版本的更多细节吗?
答案 2 :(得分:0)
你有:
from django.contrib import admin
admin.autodiscover()
你urls.py
中的?还有这样的事情:
urlpatterns = patterns('',
...
(r'^admin/', include(admin.site.urls)),
)
还有你在设置中打开管理员应用程序吗?
INSTALLED_APPS = (
...
'django.contrib.admin',
)
答案 3 :(得分:0)
您可能需要再次运行manage.py runserver
以允许管理部分重置。