如何克隆 Django 模型实例对象并在 Django 表单上显示?
Posted
技术标签:
【中文标题】如何克隆 Django 模型实例对象并在 Django 表单上显示?【英文标题】:How do I clone a Django model instance object and show on the Django forms? 【发布时间】: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 的表单上呈现它。
如何实现?
需要建议。
您好。
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于如何克隆 Django 模型实例对象并在 Django 表单上显示?的主要内容,如果未能解决你的问题,请参考以下文章