python - 如何从静态页面获取值并将其发布到模型中

标签 python django

我已将“Produkte”模型中的值 {{ p.emri }} 和 {{ p.cmimi }} 显示到我的 Browse.html 上。到目前为止一切顺利,但现在我尝试在views.py 中编写一个函数来获取这些值,并在按下提交按钮时将它们发布到另一个名为“AddToCart”的模型中。

我正在尝试编写views.py函数,我正在考虑首先使用“GET”方法获取值并将它们存储在变量中,然后使用“POST”方法将这些变量保存到模型中“添加到购物车”

这是“Browse.html”文件,其中显示模型“Produkt”中的值

{% 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 %}

这是“Produkt”和“AddToCart”模型

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

这是我正在尝试创建的 View 函数

def buy_now(request):
    if request.method =='GET':
    price = browse(request.GET['p.cmimi'])
    emri = browse(request.GET['p.emri'])
    if request.method == 'POST':

我想获得与 p.emri 和 p.cmimi 相同的值并将它们存储到 AddToCart 模型中,之后我必须获取存储的值并将它们显示到另一个静态文件中,但我可以处理这个问题。谢谢!

最佳答案

您无法通过 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 }}">

等等

然后,在您的 View 中,您可以从 POST 请求访问这些值并更新您的模型实例:

def buy_now(request):
    if request.method == 'POST':
        price = browse(request.POST['p.cmimi'])
        emri = browse(request.POST['p.emri'])

每当您需要更新任何内容时,您都应该发布您的数据。

关于python - 如何从静态页面获取值并将其发布到模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55461821/

相关文章:

python - 为什么我自建的 PyGObject 在导入 Gtk 或 Gdk 时会出现段错误?

javascript - Google 图表上的奇怪行为

python - 无法使用 django-mssql 提供程序

django - 在 Django 应用程序中多次访问静态数据

python - 如何将字符串中的数字提取到多个变量中?

python - 将具有交替键值对的字符串转换为字典

python - Pandas 枢轴并加入两个数据框

Python Beautiful Soup find_all

ajax - Django 1.9 + django-cors-headers + AJAX 不工作

python - 将 django-rest-framework 中的超链接添加到 ModelViewSet