不可逆な毎日ブログ

2度と過ごすことのない毎日をつらつらと・・・

lambdaを使えと言うけれど

以前見かけたblogがなかなか見つからない。
ChoiceFieldで、DBから値を取得しているのだけど、キャッシュされ
更新しても、新しい値が表示されない。
lambda式を使うことらしいが、イマイチ良く分からない。
ModelFormの書き方が悪いのだろうか。あぁ、悶々。

(2009.04.22 追記)
id:nullpobugさんから教えていただいた、「ModelChoiceField」で実装し、__unicode__メソッドを
オーバライドして対応できた。ありがとうございます。

class MaterialForm(forms.ModelForm):

  project = forms.ModelChoiceField(label='プロジェクト名', queryset=Project.objects.all(), required=True)
  storage = forms.ModelChoiceField(label='保存場所', queryset=Storage.objects.all(), required=True)

  class Meta:
    model = Material

参考にしたサイト
フォームフィールド — Django v1.0 documentation

django.forms.ModelChoiceFieldをカスタマイズ - 記憶は削除の方向で

  def __unicode__(self):
    return self.project_name

これが表示されるのか、知らなかった・・・。
というか、全然知らなさすぎ。