Django ModelForms でのForeignKey選択肢のフィルタリング
ForeignKey関係を持つDjangoモデルを操作する場合、特定の基準に基づいて特定のフィールドで利用可能な選択肢。この特定のケースでは、クライアント モデルのレートの選択肢をその親会社に関連付けられたもののみに制限したいというシナリオがあります。
Django 1.0 でこのフィルタリングを実現するには、queryset 属性を利用できます。対応する ModelChoiceField の。あなたの場合、関連するフィールドは「レート」です。このフィールドにカスタム QuerySet を提供することで、必要なフィルタリング基準を適用できます。
form.fields["rate"].queryset = Rate.objects.filter(company_id=the_company.id)
この変更により、クライアントの作成または編集時に、レートの選択肢がクライアントに関連付けられたもののみに制限されるようになります。クライアントが所属する会社。このフィルタリングをビューで明示的に処理することで、管理インターフェイスでの limit_choices_to 属性の使用によって発生する可能性のある複雑な問題を回避できます。
このアプローチにより、ForeignKey の選択肢をフィルタリングするクリーンで効率的な方法を維持できます。 Django ModelForms は、アプリケーションのデータ操作タスクの柔軟性を高めます。
以上が関連するモデルデータに基づいて Django ModelForms でForeignKeyの選択肢をフィルタリングする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。