3

私は現在、YouTubeでHackedExistenceによる2番目のDjangoチュートリアルに参加しています。それは私が学ぶのを助けており、私はそうし続けたいと思います。動画は約1年前に投稿されたので、少し古くなっていると思います。だから私はいくつか質問があります。

ビールというアプリを作りました

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リンクはApache2 テストページを開き、localhostリンクはDjango管理者ページをうまく開きます(まあ、上記の編集まではそうしました)。

しかし、彼はハッキングされた存在リンクがDjango管理ページをロードするように設定しました。

それ以上の問題が発生しなければ、セットアップに問題はありません。しかし、私が使用しているバージョンでそのように設定するには、どのような異なる手順が必要か知りたいです。

Python 2.7.3、Django 1.4.1、Apache 2.2.22(Unix)

私はOSX10.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 に答える