我怎样才能渲染一个 Django Formset 与一些更新过程的数据?

How can I render a Django Formset with some data for update process?

我在 inlineformset_factory 中使用 Dajngo 表单集 当用户单击更新时我需要什么它应该使用该值呈现 formset。 这是我所做的代码,但没有任何效果: 这就是我创建表单集的方式

OrderItemFormset = inlineformset_factory(
    Order, OrderItem, fields='__all__', extra=1, can_delete=False)

这里是我如何尝试使用 queryset=my_query_set 渲染表单集。

if 'id' in kwargs.keys():
            order = Order.objects.get(id=kwargs.get('id'))
            order_items = OrderItem.objects.filter(order_id=kwargs.get('id'))
        else:
            order = None
            order_items = None
        order_form = OrderForm(instance=order)
        print(order_items)
        order_item_form = OrderItemFormset(queryset=order_items)
    

当我点击更新时 link Django 使用我需要的数据渲染父表单,但这不适用于 formset 它只给我一行空数据。

在尝试解决我的问题后,我发现我使用 queryset,我认为我应该改用 instance。 另一件事是该实例来自 OrderItem 模型,而不是它应该来自 Order 模型,因此代码应该如下所示。

def get(self, request, *args, **kwargs):
        if 'id' in kwargs.keys():
            order = Order.objects.get(id=kwargs.get('id'))
        else:
            order = None
        order_form = OrderForm(instance=order)
        order_item_form = OrderItemFormset(instance=order)
        orders = Order.objects.all()
        context = {'order_form': order_form,
                   'order_item_form': order_item_form, 'orders': orders}
        return render(request, self.template_name, context)