我有一个视图,在其中呈现两个窗体。这两个表单都与更新付款(SIM U表单)和附加付款表单(付款U表单)相关。正如您从代码中看到的,我通过获取sim_表单的ID来填充表单。我希望在模型付款中保存相同的SIM表ID,该模型付款中有一个SIM外键。但是我无法传递该值,并且表单给出了一个验证错误,即sim_id的值为空。
身份证来了,我也能用。
模型
class Payment(models.Model):
deposit_date = models.DateField(blank=True, verbose_name='Deposit Date')
file = models.FileField(upload_to=get_file_path)
sim = models.ForeignKey(Sim, on_delete=models.DO_NOTHING, null=False, blank=False)
视图
def updatePayment(request, id):
sim = get_object_or_404(Sim, pk=id)
payment_form = AddPaymentForm(request.POST, request.FILES)
if request.method == "POST":
sim_form = UpdatePayment(request.POST, instance=sim)
try:
if payment_form.is_valid() and sim_form.is_valid:
sim_form.save()
# I am trying to form the value from here
payment_form.sim_id = id
payment_form.save()
messages.success(request, ("Payment has been updated"))
else:
messages.warning(request, ("Data in fields is incorrect, please try again"))
except Exception as e:
messages.warning(request, ("Error: {}".format(e)))
else:
sim_form = UpdatePayment(instance=sim)
payment_form = AddPaymentForm(request.POST)
context = {'sim_form': sim_form,'payment_form': payment_form,}
return render(request, 'payment/updatePayment.html', context)