ユーザーの「資格」のインラインフォームセットを表示するページを生成するために、views.pyに次のものがあります
from django.db.models import User
from models import UserQualification
def edit_quals(request):
QualsFormSet = inlineformset_factory(User, UserQualification, fields=('qualification', 'qualification_year', 'qualification_source'))
if request.method == 'POST':
formset = QualsFormSet(request.POST, request.FILES, instance = request.user)
if formset.is_valid():
formset.save()
#send user somewhere
return HttpResponseRedirect(request.user.get_profile_url())
else:
formset = QualsFormSet(instance = request.user)
return render_to_response("edit_quals.html", {
"formset": formset,
}, context_instance=RequestContext(request))
これは問題なく動作しますが、formset
特定の 'UserQualification' オブジェクト (つまり、特定のタイプとしてマークされているオブジェクトのみ) のみを含む を作成して、ユーザーがこのページにアクセスしたときに資格のサブセットのみを編集するようにしたいと考えています。 . この参照は私が欲しいもののようです: http://docs.djangoproject.com/en/1.1/topics/forms/modelforms/#ching-the-queryset。これは modelformset_factory を扱いますが、inlineformset_factory は事前に基づいているため、同じことが機能するはずです。
formset = QualsFormSet(instance = request.user, queryset=UserQualification.objects.filter(type__startswith='xyz'))
しかし、このページに行くと、TypeError: init () が予期しないキーワード引数 'queryset' を取得しました。そのリファレンスには 2 つの方法がリストされていますが、どちらにも問題があります。