2011-07-07 10 views
0

「イベント」というモデルのオプションを持つ選択ボックスがあります。私のプロダクションサーバーでは、結果がチャーミングになります。forms.pyのlambdaに関するヘルプ

この選択ボックス内のすべてのイベントの最新バージョンが必要です。私は#djangoで尋ねた。誰かがラムダを使うべきだと言った。私はラムダでこれを試しましたが、うまくいきません。新しいイベントを追加するときに古い値を取得するのは、最新のバージョンを表示するApacheの再起動のみです。

私のコードに何か問題がありますか?

#forms.py 

events = lambda : [(e.id, e.title) for e in Event.objects.all().order_by('-date')] 

class EventForm(Form): 
    event_title = ChoiceField(label='Veranstaltung', choices=events()) 

答えて

0

この答えは、あなたが役に立たない、それをレンダリング、ラムダを評価しているコメント

を参照して、動作しません。

そうのようなブラケットをドロップ:

event_title = ChoiceField(label='Veranstaltung', choices=events) 

幸運を!

+0

私はこのエラーが発生します: 'function'オブジェクトは反復可能ではありません – maruusos82

+0

あなたは正しいです。私たちは本当にこのためのバグをファイルする必要があります、私はこれにすべての時間を実行する –

+0

私の他のラムダ構文は、この獣以外は私のためにうまく動作します:) – maruusos82

1

Grrr ...コメントボックスは私には編集の余地がほとんどありません。私はここでそれを試してみましょう:

を回避策がちなみに、すなわち

class EventForm(Form): 
    event_title = ChoiceField(label='Veranstaltung', choices=[]) 

    def __init__(self, *args, **kwargs): 
     super(EventForm, self).__init__(*args, **kwargs) 
     self.fields['events'].choices = [(e.id, e.title) for e in Event.objects.all().order_by('-date')] 

、フォームの__init__を使用することで、あなたはModelChoiceFieldを使用して検討したのですか?

+0

お世話になりました!私はModelChoiceFieldの存在を知らなかった。 :) – maruusos82

関連する問題