Django の FormSet についてハマったメモ
ある更新用のビューに FormSet を使いたかった。更新用のビューなので、既存のオブジェクトがある場合は FormSet をそれに対して束縛してやる必要があった。
環境
Django==1.4.1
解法
下記ブログ参考に。
modelformset_factory を使えば FormSet に queryset が使えるので、これに束縛するオブジェクト (クエリセット) を与えてやれば良い
ハマったことろ
modelformset_factory ではなくて、 formset_factory を使っていた。具体的には以下のようにしていた。
>>> from django.forms.formsets import formset_factory >>> from django.forms.models import modelform_factory >>> from myapp.models import Animal >>> AnimalForm = modelform_factory(Animal) >>> AnimalFormSet = formset_factory(AnimalForm) >>> animal_formset = AnimalFormSet()
この formset_factory を使った場合 queryset が無い。
queryset に類似する引数は見つけられていない。何かの拍子に見つかれば追々書く。
とにかく modelformset_factory を使えば解決。
おわりに
アドバイスくれた id:yuheiomori0718 さん++
ブログ記事残してくれた ian さん++