3

でinlineformset_factory内の外部キー要素のサブセットを選択します。私はそうのように、インラインフォームセットクラスを作成し、その後私は2つの外部キーを持つモデル持っジャンゴ

class Model1(models.Model): 
    model_a = models.ForeignKey(ModelA) 
    model_b = models.ForeignKey(ModelB) 
    value = models.IntegerField() 

を:

an_inline_formset = inlineformset_factory(ModelA, Model1, fk_name="model_a") 

とこのフォームセットは、テンプレート/ページ内にレンダリングされる

a_formset = an_inline_formset(request.POST, instance=model_A_object) 

たら、ChoiceField associatがあります。そうのように、その後、それをインスタンス化model_bフィールドで編集します。私が抱えている問題は、結果のドロップダウンメニューの要素にModelBテーブルにあるすべての要素が含まれていることです。 ModelBからいくつかの基準に基づいてそれらのサブセットを選択する必要があります。同時に、inlineformset_factoryをインスタンス化するときにmodel_A_objectのインスタンスへの参照を保持する必要があるため、thisの例を使用することはできません。助言がありますか?あなたがする必要がどのような

+0

一般的な 'django'タグを追加するだけで、非常に特定のタグに従っていない人のために強調表示されます。 – stevelove

答えて

2

はこれを行うにはchange the ModelChoiceField's queryset

最も簡単な方法は、サル・パッチフォームセットの形であってよいです。

an_inline_formset.form.base_fields['model_b'].queryset = ModelB.objects.filter(whatever=True) 

ないきれいな、それが動作するはずです:あなたはしてフォームセットを構成した後、この権利を行うことができるはずです。

関連する問題