我怎样才能渲染一个 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)
我在 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)