所以我有这个Django模型:
class Cart(models.Model):
ref_code = models.CharField(max_length=15, null=True)
owner = models.ForeignKey(Profile, on_delete=models.CASCADE, null=True)
items = models.ManyToManyField(PickedProduct)
start_date = models.DateTimeField(auto_now_add=True)
is_ordered = models.BooleanField(default=False)
tot_price = models.DecimalField(max_digits=10, decimal_places=2, default=0)
tot_item = models.IntegerField(default=0)
note = models.TextField(max_length=500, null=True, blank=True)
我正在使用购物车模型来构建我的NoteOption表单,如下所示:
class NoteOption(forms.ModelForm):
class Meta:
model = Cart
fields = ['note']
在我看来,我有以下代码(虽然代码不完整,但我正在研究中):
@login_required
def UserCartView(request, **kwargs):
user_cart = current_cart(request)
note = NoteOption(instance=user_cart)
# I don't know what to do here
if request.method == 'POST':
user_cart.note = note
user_cart.save()
context = {
'note': note,
'user_cart': user_cart,
}
return render(request, 'cart/cart.html', context)
在模板中,我有以下字段:
<div class="col-lg-4 mt-5 ftco-animate">
<form method="post" id="my_form">
{{ note|crispy }}
</form>
</div>
在模板的末尾,我使用标记发送发帖请求,如下所示:
<a href="{% url 'precheckout-view' %}" class="btn btn-primary py-3 px-4"
onclick="document.getElementById('my_form').submit();">Proceed to Checkout
</a>
当我第一次启动模板时,我能够从数据库中获取当前存储的数据到Note字段中。但是,当我修改“注释”字段的内容并单击“继续进行结帐”后,新数据不会替换到DB中。我应该在代码中添加什么?