Django でのカリー関数の使い方について質問があります。私はそれを使用して、カスタムフォームでインラインモデルフォームセットを構築することに成功しました:
person_obj, formed = Mother.objects.get_or_create(user=request.user)
FormSetClass = inlineformset_factory(Mother, Relation, form=RelationForm, extra=1)
FormSetClass.form = staticmethod(curry(RelationForm, person=person_obj))
これにより、クエリセットをフィルタリングするために、フォームの init メソッドで kwargs に person を渡すことができます。
class RelationForm(ModelForm):
def __init__(self, *args, **kwargs):
person = kwargs.pop('person')
qs = Relation.objects.filter(person=person)
self.fields['my-field'].queryset = qs
私の質問は、これがどのように機能するのか見当がつかないということです-それに関するドキュメントが見つかりません.ソースコードは実際に私のためにそれを明らかにしていません. 誰かがこれがどのように機能するかを説明し、これとは別に、カレーの良い使用例をいくつか教えてもらえますか?