我已将“产品”模型中的值{{p.emri}}和{{p.cmimi}}显示在我的Browse.html上。到目前为止,还不错,但是现在我试图在views.py中编写一个函数来获取该值,然后在我按下Submit按钮时将它们发布到另一个名为“ AddToCart”的模型中。
我正在尝试编写views.py函数,在这里我想首先使用“ GET”方法获取值并将它们存储在变量中,然后使用“ POST”方法将这些变量保存到模型中“ AddToCart”
这是'Browse.html'文件,其中显示了来自模型“ Produkt”的值
namespace NAMESPACE_NAME {}
这是“产品”和“ AddToCart”模型
{% for p in produktet %}
<div class="col-md-3 col-sm-12 col-xs-12 on-over" style="...">
<img class..." src="{{ p.foto }}">
<label class="label-ge">{{ p.emri }}</label>
<p><label style="...">{{ p.cmimi }} LEK</label></p>
<h4>Pershkrimi</h4>
<p>{{ p.pershkrimi }}</p>
<button class="btn..." style="...">Add to Cart</button>
</div>
{% endfor %}
这是我要创建的视图函数
class Produkte(models.Model):
emri = models.CharField(max_length=50)
pershkrimi = models.CharField(max_length=500)
cmimi = models.IntegerField()
foto = models.CharField(max_length=500)
kategori = models.ForeignKey(Kategorite, on_delete = models.DO_NOTHING)
def __str__(self):
return self.emri
class AddToCart(models.Model):
id = models.AutoField(primary_key=True, unique=True)
id_product = models.ForeignKey(Produkte, on_delete = models.DO_NOTHING)
quantity = models.IntegerField()
id_user = models.ForeignKey(User, on_delete = models.DO_NOTHING)
orderd = models.BooleanField(default=False)
@property
def cmimi_total(self):
return self.quantity * self.id_product.cmimi
我想获得与p.emri和p.cmimi相同的值并将它们存储到AddToCart模型中,之后我必须获取存储的值并将它们显示到另一个静态文件中,但是我可以解决这一问题。谢谢!
答案 0 :(得分:0)
您无法从GET请求访问变量,需要POST请求。您可以将页面上的添加到卡片元素用作表单提交按钮。您提交的表单可以包含您需要作为隐藏输入的变量值。例如:
<form method="post" action="your/add/to/cart/url/">
{% csrf_token %}
<input type="hidden" name="p.emri" value="{{ p.emri }}">
<input type="hidden" name="p.cmimi" value="{{ p.cmimi }}">
等等。
然后,在您的视图中,您可以从POST请求中访问这些值并更新您的模型实例:
def buy_now(request):
if request.method == 'POST':
price = browse(request.POST['p.cmimi'])
emri = browse(request.POST['p.emri'])
每当需要更新任何内容时,都应始终发布数据。