2011-08-12 12 views
0

djangoでModelFormを使用してdjangoでフォームを作成しています。だから、私はLocationモデルを参照する予定モデルを持っています。私がModelFormを使用しているので、Locationフィールドの選択ボックスはdjango自身によって自動的に設定されます。私が欲しいのは、状態のような属性に基づいてModelFormを使用してフォームを作成したときに配置される場所のタイプを制御することです。djangoのモデルフォームのフィールドの値をフィルタリングする

私は、ModelFormの場所フィールド自体を手動でオーバーライドしたくありません。私は要素がdjango自体によって処理されることを望みます。フィルタに掛けたいだけです。助言がありますか?あなたインスタンスはインライン形で存在し、されていない場合、あなたはモデルフォームで次の操作を行うことができます

+1

を使用していますhttp://stackoverflow.com/questions/291945/how-do-i-filter-foreignkey-choices-in-a-django-modelform –

+0

例を挙げることができますか?あなたの基準が動的でない場合は、あなたのモデルでlimit_choices_to = {'type': 'a'}を使うことができます – programmersbook

答えて

0

def __init__(self,*args,**kwargs): 
    super (AppointmentForm,self).__init__(*args,**kwargs) # populates the post 
    #filter appointments based on status 
    if self.instance.pk: 
     # the location filter below is a guess. i don't know your models. 
     locations = Location.objects.filter(status_id=self.instance.status_id) 
     self.fields['location'].queryset = locations 

別のアプローチは、持っているAトリッキー取得するコールバック...

関連する問題