フツーのサイトは取ってこれるので、URLfetcher は動いている見たいなのだが、AWS というか Product Advertising API にうまくアクセスできない。プログラムがエラーを返す。
人様のコードをサックとそのまま拝借しようという考え方が甘かったか...。
AWS の勉強から真面目に始めよう。
2010年4月27日火曜日
GAE Aptana:ようやく雛形が動いた
ナメてかかったら、プロジェクト生成時にインストールされる 'Hello, webapp World!'を動かすだけで2時間もかかってしまった orz。
オイラの環境でのキモは、
・Python のバージョンは 2.5 -> 2.5.2 では動かなかった。
・dev_appserver.py に渡す root パスは、すべて文字で書いてダブルクオーテションで括る。 -> なぜか環境変数 {project_loc} は使えず。ダブルクオーテションも必須。
あとは GAE aptana で検索して出てくるサイトの情報でいけた。
先は長そうだ...。
オイラの環境でのキモは、
・Python のバージョンは 2.5 -> 2.5.2 では動かなかった。
・dev_appserver.py に渡す root パスは、すべて文字で書いてダブルクオーテションで括る。 -> なぜか環境変数 {project_loc} は使えず。ダブルクオーテションも必須。
あとは GAE aptana で検索して出てくるサイトの情報でいけた。
先は長そうだ...。
2010年4月26日月曜日
GAE:久しぶりにドキュメントを読んだら
最近ちょっと煮詰まり気味なので、久しぶりに GAE Python のスタートガイドを読んだら...、100%理解できた。
正確にいうと「Django でいうところのアレね」という読み替えで理解した。
意外と簡単ジャン。と、ナメてかかってプロジェクトX始動だ (^^;
正確にいうと「Django でいうところのアレね」という読み替えで理解した。
意外と簡単ジャン。と、ナメてかかってプロジェクトX始動だ (^^;
2010年4月22日木曜日
django:汎用ビューの direct_to_template でちょっと嵌る
完全に固定されたページを表示させるために、汎用ビューの direct_to_template を使おうとして少々はまる。
django documentation には
オフィシャルドキュメントであっても鵜呑みにしない。よく忘れるが、キモに命じておこう。
django documentation には
必須の引数:とあったのに、例題を見てファイル名から '.html' を外してしまった。
* template: 使用するテンプレートの完全な名前です。
オフィシャルドキュメントであっても鵜呑みにしない。よく忘れるが、キモに命じておこう。
2010年4月20日火曜日
django:管理画面のカレンダーを使う方法
form 経由はあきらめて (^^;
1.urls.py に以下を追加
2.<head></head>の間に以下を挿入
3.入力フィールドは以下のように書く。多分 class が重要。
1.urls.py に以下を追加
(r'^my_admin/jsi18n', 'django.views.i18n.javascript_catalog'),
2.<head></head>の間に以下を挿入
<link rel="stylesheet" type="text/css" href="/media/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/media/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/media/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/media/css/widgets.css"/>
<script type="text/javascript" src="/my_admin/jsi18n/"></script>
<script type="text/javascript" src="/media/js/core.js"></script>
<script type="text/javascript" src="/media/js/calendar.js"></script>
<script type="text/javascript" src="/media/js/admin/DateTimeShortcuts.js"></script>
3.入力フィールドは以下のように書く。多分 class が重要。
日付<input id="id_start_date" class="vDateField" type="text" name="date" style="width:100px;height:14px;">
2010年4月19日月曜日
Django:form の使い方
イマイチよくわからなかった form と格闘中
1.html に出力するときは、こんな感じ
2.model を form にするときは、ModelForm を使うと便利
3.admin の管理画面の wedgit を自前の form で使うときの情報はこちら
1.html に出力するときは、こんな感じ
class ContactForm(forms.Form):
date = DateField(widget=CalendarWidget)
name = CharField(max_length=40, widget=OtherWidget)
>>> f = ContactForm()
>>> f.media
<link href="http://media.example.com/pretty.css" type="text/css" media="all" rel="stylesheet" />
<script type="text/javascript" src="http://media.example.com/animations.js"></script>
<script type="text/javascript" src="http://media.example.com/actions.js"></script>
<script type="text/javascript" src="http://media.example.com/whizbang.js"></script>
2.model を form にするときは、ModelForm を使うと便利
3.admin の管理画面の wedgit を自前の form で使うときの情報はこちら
2010年4月9日金曜日
Django:管理画面のテンプレートをオーバライド・その後
管理画面のテンプレートをオーバライドして、デバッグ環境ではうまくいったのだが、デブロイしたらうまくいかない。
どうも {% extends "admin/base_site.html" %} で継承している継承元をうまく呼び出せていないようで、崩れた形で表示される。
あれこれやったが、結局アプリケーション単位で必要なブロックだけをオーバーライドする形でうまくいった。
なぜ最初のやり方がデバック環境でしか動かなかったかは謎だが、謎解きは...、多分しないな (^^;
----
やったのは結局
1.default のテンプレートをオーバーライドするディレクトリを作る
settings.py で定義されている TEMPLATE_DIRS の下に admin ディレクトリを作り、その下にさらにアプリケーション名のディレクトリを作る。
2.そのディレクトリにオーバライド部分を書いた change_form.html を置く。内容は以下のとおり。
どうも {% extends "admin/base_site.html" %} で継承している継承元をうまく呼び出せていないようで、崩れた形で表示される。
あれこれやったが、結局アプリケーション単位で必要なブロックだけをオーバーライドする形でうまくいった。
なぜ最初のやり方がデバック環境でしか動かなかったかは謎だが、謎解きは...、多分しないな (^^;
----
やったのは結局
1.default のテンプレートをオーバーライドするディレクトリを作る
settings.py で定義されている TEMPLATE_DIRS の下に admin ディレクトリを作り、その下にさらにアプリケーション名のディレクトリを作る。
2.そのディレクトリにオーバライド部分を書いた change_form.html を置く。内容は以下のとおり。
{% extends "admin/change_form.html" %}
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="../../../jsi18n/"></script>
{{ media }}
<style type="text/css"><!--
.vURLField { width:60em; } <-- ここがオーバライドされる css
--></style>
{% endblock %}
Firefox:div の扱いが変
既存のページのレイアウトをちょっと変えて、
しばらく悪戦苦闘してから他のブラウザで表示させてみると IE,Chrome,Safri では問題なく表示される(多少垂直マージンに差はあったが)。
FireBug を使ってよくよく調べていくと、<div></div> で定義した領域の高さがない。中身が[空]になっていて、そのせいで <div> の最後で当然実行されるべき <BR> が実行されず <HR> がとんでもないところに表示されるようだ。
ためしに </div> の後ろに <BR> を入れると正常な位置に <HR> が表示された。のだが、他のブラウザで余分に行間が開いてしまう。
最終的には <div> の直後に全角のスペースをひとつ入れることで解決。エレガントな解法はべつにありそうだが、とりあえず良いことにしよう。
というコードを書いたら、最後の <HR> がとんでもないところに表示される。<div style="width: 500px;" align="left">
<span style="float: left;">左寄せ</span>
<span style="float: right;">右寄せ</span>
</div>
<hr>
しばらく悪戦苦闘してから他のブラウザで表示させてみると IE,Chrome,Safri では問題なく表示される(多少垂直マージンに差はあったが)。
FireBug を使ってよくよく調べていくと、<div></div> で定義した領域の高さがない。中身が[空]になっていて、そのせいで <div> の最後で当然実行されるべき <BR> が実行されず <HR> がとんでもないところに表示されるようだ。
ためしに </div> の後ろに <BR> を入れると正常な位置に <HR> が表示された。のだが、他のブラウザで余分に行間が開いてしまう。
最終的には <div> の直後に全角のスペースをひとつ入れることで解決。エレガントな解法はべつにありそうだが、とりあえず良いことにしよう。
2010年4月7日水曜日
Django:models.URLField の管理画面での入力欄の幅を広げる方法
いろいろな所から情報を集めてなんとか出来た。この方法を応用すれば、管理画面の各種 css のパラメータを変更出来る。
1.default のテンプレートをオーバーライドするディレクトリを作る
settings.py で定義されている TEMPLATE_DIRS の下に admin ディレクトリを作る。
2.そのディレクトリに dafult からオーバーライドするテンプレートをコピー
管理画面の[追加・編集]を変更したい場合は
Lib\site-packages\django\contrib\admin\templates\admin\change_form.html
3.{% block extrahead %} 内にオーバーライドする内容を挿入(こちらのページの687行目)
今回は以下の赤い部分が追加分
#extends のパスをうまく設定すれば change_form.html を丸々コピーする必要はなさそうだが、今回はパス。 このやり方ではデプロイしたら動かなかったので、結局必要最低限だけオーバーライドさせた。
1.default のテンプレートをオーバーライドするディレクトリを作る
settings.py で定義されている TEMPLATE_DIRS の下に admin ディレクトリを作る。
2.そのディレクトリに dafult からオーバーライドするテンプレートをコピー
管理画面の[追加・編集]を変更したい場合は
Lib\site-packages\django\contrib\admin\templates\admin\change_form.html
3.{% block extrahead %} 内にオーバーライドする内容を挿入(こちらのページの687行目)
今回は以下の赤い部分が追加分
{% block extrahead %}{{ block.super }}
<script type="text/javascript" src="../../../jsi18n/"></script>
{{ media }}
<style type="text/css"><!-- .vURLField { width:60em; } --></style>
{% endblock %}
#
登録:
投稿 (Atom)