3

我目前在 youtube 上的 Hacked Existence 的第二个 Django 教程中。它帮助我学习,我想继续这样做。我知道该视频是大约一年前发布的,所以它有点过时了。所以我有一些问题。

我创建了一个名为 beers 的应用程序

python manage.py sqlall beer

在第 13 分钟,他编辑了 admin.py,如下所示:

from django.contrib import admin
from beer.models import Beer, Brewery

class BeerAdmin(admin.ModelAdmin):
    prepopulated_fields = {'slug': ('name')}

admin.site.register(Beer, BeerAdmin)
admin.site.register(Brewery)

此修改导致错误:

在 /admin/ 配置不当

'BeerAdmin.prepopulated_fields['slug']' 必须是列表或元组。

我该如何解决这个问题,以及为什么相同的代码在他的系统上运行良好。此消息显示在

http://127.0.0.1:8000/admin/

这就引出了下一个问题,

在我的浏览器上,

HackedExistence 链接 打开了 Apache 2 测试页面,而 localhost 链接很好地打开了 Django 管理员页面(嗯,在上面的编辑之前它确实如此)。

但是他设置了它,以便被黑的存在链接加载 Django 管理页面。

如果不会导致进一步的问题,我的设置没有问题。但是我想知道使用我正在使用的版本进行设置需要哪些不同的步骤。

Python 2.7.3、Django 1.4.1、Apache 2.2.22 (Unix)

我正在使用 OS X 10.6.8。

4

2 回答 2

2

将您的定义更改为

prepopulated_fields = {'slug': ('name',)}

注意: 之后的逗号'name',没有 comm,它被解释为字符串对象,而不是元组或列表。

于 2012-10-11T06:00:22.053 回答
0

这是一个绊倒许多 Python 新手的“陷阱”:在元组中,基本的句法元素是逗号。括号实际上是可选的。您可以在此处阅读更多相关信息

于 2012-10-11T06:15:18.393 回答