4

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

私の質問は、これがどのように機能するのか見当がつかないということです-それに関するドキュメントが見つかりません.ソースコードは実際に私のためにそれを明らかにしていません. 誰かがこれがどのように機能するかを説明し、これとは別に、カレーの良い使用例をいくつか教えてもらえますか?

4

1 に答える 1