【问题标题】:How do I clone a Django model instance object and show on the Django forms?如何克隆 Django 模型实例对象并在 Django 表单上显示?
【发布时间】:2014-05-11 23:48:33
【问题描述】:

所以,第一部分很清楚。

customer = Customer.objects.get(pk=1)
customer.pk = None
customer.save() # Saved a new instance. 
# But i want to modify it

这里的问题是我想在保存之前修改该实例。为此,我必须在 HTML 的表单上呈现它。

如何实现?

需要建议。

您好。

【问题讨论】:

    标签: python django models


    【解决方案1】:

    您在提交表单后修改 pk。 您将客户作为实例传递给 CustomerForm 并让表单保存一个新对象。比如:

        class CustomerForm(forms.ModelForm):
            class Meta:
                model = Customer
    
        def my_view(request):
            customer = Customer.objects.get(pk=1)
            customer.pk = None
            if request.method == 'POST':
                form = CustomerForm(instance=customer)
                if form.is_valid():
                    customer = form.save()
                    return redirect('...')
            else:
                form = CustomerForm(instance=customer)
            return render(request, 'template', {'form': form})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2012-08-24
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 2019-04-24
      相关资源
      最近更新 更多