所以,第一部分非常清楚。
customer = Customer.objects.get(pk=1)
customer.pk = None
customer.save() # Saved a new instance.
# But i want to modify it
这里的问题是我想在保存之前修改该实例。因为我必须在HTML中的表单上呈现它。
如何实现?
需要建议。
问候。
答案 0 :(得分:2)
您在提交表单后修改了pk。 您将customer as instance作为实例传递给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})