首页 > 解决方案 > 如何从 modelformset_factory 访问单个表单对象?

问题描述

我已经使用 modelformset_factory 部署了一个表单集。但是,我需要遍历表单集中的表单,对它们执行一些逻辑,然后单独保存每个表单,而不是保存整个表单集。目前,我不得不使用表单集中每个表单的 ID 来获取它所代表的对象。有更清洁的方法吗?

def accounts_import(request,pk):
    account = get_object_or_404(Account, pk=pk)

    # Create transactions queryset for use in formset
    transactions = Transaction.objects.filter(account=account.monzo_account, import_type=None).order_by('-id')


    FormSet = modelformset_factory(Transaction, form=TransactionsImportForm, extra=0)

    if request.method == 'POST':
        formset = FormSet(request.POST)
        if formset.is_valid():


            for form in formset:

                object = Transaction.objects.get(id=form.cleaned_data['id'])
                # Do some stuff on the object
                object.save()
                

标签: django

解决方案


好的看起来 form.cleaned_data['id'] 返回对象而不是 ID,所以我得到了我想要的。


推荐阅读