【问题标题】:Django Formset Edit ViewDjango Formset 编辑视图
【发布时间】:2020-12-07 09:12:18
【问题描述】:

最近我开始自己学习 Python Django。我正在使用 django 表单集。有人请帮助我编辑此表单集的视图。这是创建视图。

def create(request):

    context = {}
    InvoiceFormset = modelformset_factory(Invoice, form=InvoiceForm)
    form = OrderForm(request.POST or None)
    formset = InvoiceFormset(request.POST or None, queryset=Invoice.objects.none(), prefix='invoice')
    if request.method == "POST":
        if form.is_valid() and formset.is_valid():
            try:
                with transaction.atomic():
                    order = form.save(commit=False)
                    order.save()
                    print("form saved")

                    for invoice in formset:
                        data = invoice.save(commit=False)
                        print(data)
                        data.invoice_id = order
                        data.save()
                        print("formset saved")

            except IntegrityError:
                print("Error Encountered")

            return redirect('/', messages.success(request, 'Order was successfully created.', 'alert-success'))

    context['formset'] = formset
    context['form'] = form
    return render(request, 'new.html', context)

【问题讨论】:

  • 你的问题是什么?请更新问题。
  • 这是我的表单的创建视图功能。我正在使用一个表格来保存客户详细信息,并使用一个表格来保存订单详细信息。这种创建形式运行良好。我想添加此代码的编辑视图。 formset 部分未在编辑视图中显示保存的数据。请帮忙。谢谢,

标签: python django forms formset


【解决方案1】:

您可以使用UpdateView [Django-Docs] 创建用于编辑此模型的视图。

示例:(Order 模型)

views.py

class OrderUpdate(UpdateView):
    model = Order
    template_name_suffix = '_update_form'
    fields = '__all__'

模板

<app_name>/order_update_form.html 位置创建一个模板(<app_name> 替换为您的应用名称)

<form method="post">  
    {% csrf_token %}  
    {{ form.as_p }}  
    <input type="submit" value="Save">  
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-06
    • 2020-02-29
    • 2018-04-09
    • 2018-04-25
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 2013-05-09
    相关资源
    最近更新 更多