ラベル Django の投稿を表示しています。 すべての投稿を表示
ラベル Django の投稿を表示しています。 すべての投稿を表示

2012年8月12日日曜日

djangoでsyncdbで管理者ユーザーを設定する

fixtureという機能で設定します。
ココを参考にして、initial_data.json(settings.pyのFIXTURE_DIRSに設定したディレクトリ内)を作成して

 [
   {   
        "pk":1,
        "model": "auth.user",
        "fields": {
            "username": "admin",
            "password": "pbkdf2_sha256$10000$Z9TQtBh3bSmV$gq99AxSMLIHyIjDCSsVRjX8doLYgJxl1p1z7QZMWBr4=",
            "is_staff": true,
            "is_superuser": true
        }
    }
]

を設定する。ちなみにこのパスワードはmanage.py shell(自分はDJANGO_SETTINGS_MODULE=settings ipythonでやる)で次をやって生成する。
>>> from django.contrib.auth.models import User
>>> u = User()
>>> u.set_password('admin') #adminというパスワードを作成
>>> u.password
'pbkdf2_sha256$10000$Z9TQtBh3bSmV$gq99AxSMLIHyIjDCSsVRjX8doLYgJxl1p1z7QZMWBr4='

これでmanage.py syncdbすると自動的にユーザーadminが設定される。

2012年8月1日水曜日

Django - settings.py url.pyでreverseを使う

自分用メモ
url.pyなどで、reverseを使うとurl.pyが実行される時点では、urlの設定はされていないため、うまく動かない。
そこで、django.utils.functionalのlazyを使って、reverseを遅延評価させる。
http://stackoverflow.com/questions/1794655/reverse-django-generic-view-post-save-redirect-error-included-urlconf-doesnt

lazyの解説はここがわかりやすい。

追記
Django1.4からreverse_lazyというメソッドが追加されているのでそれを使えば良い
https://docs.djangoproject.com/en/dev/releases/1.4/#reverse-lazy

例えば、

from django.core.urlresolvers import reverse_lazy

LOGIN_URL = reverse_lazy('accounts-login')

2012年3月28日水曜日

Ubuntu 10.04LTSのapt-getで入れたDjangoのdjango/contrib/adminのありか

Djangoの日本語版チュートリアルを見ていたら

デフォルトの Django admin 用のテンプレート置場 (django/contrib/admin/templates) から、 admin/base_site.htmlという テンプレートをコピーして、 TEMPLATE_DIRS 上の admin というディ レクトリ下に置きます。
という指示を受けた。

しかし、apt-getで入れたdjangoのソースたちがどこにいるかよくわからなかったので、
探したらここにあった。

なぜか二個
/usr/lib/pymodules/python2.6/django/contrib/admin
/usr/share/pyshared/django/contrib/admin

中を見ると、結構2個目のほうからシンボリックリンクが張られているようなので、
本体は

/usr/share/pyshared/django/contrib/admin

か。