Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Django中更新数据库中的值?_Python_Html_Django - Fatal编程技术网

Python 如何在Django中更新数据库中的值?

Python 如何在Django中更新数据库中的值?,python,html,django,Python,Html,Django,我正在使用Python和Django创建一个项目,在这个项目中,我跟踪我商店中的所有产品,一旦我销售了一个特定的产品,我需要更新该产品剩余的单元数 这是我的Models.py文件 from django.db import models class Product(models.Model): prod_name=models.CharField(max_length=100, blank=False) company=models.CharField(max_length=

我正在使用Python和Django创建一个项目,在这个项目中,我跟踪我商店中的所有产品,一旦我销售了一个特定的产品,我需要更新该产品剩余的单元数

这是我的Models.py文件

from django.db import models


class Product(models.Model):
    prod_name=models.CharField(max_length=100, blank=False)
    company=models.CharField(max_length=100, blank=False)
    quantity=models.IntegerField()
    price=models.IntegerField()
    prod_type=models.CharField(max_length=100)
    units=models.IntegerField()

        def __str__(self):
            return('Name:{0} Company: {1} Qty:{2} Price: {3} Type:{4} Units: {5}'.format(self.prod_name, self.company,self.quantity, self.price, self.prod_type, self.units))
这是我的views.py文件

from django.shortcuts import render, redirect, get_object_or_404
from .models import *
from .forms import *

def index(request):
    return render(request, 'index.html')

def display_product(request):
    items=Product.objects.all()
    context={
    'items':items
    }


    return render(request, 'index.html', context)   


def add_product(request):
    if request.method == "POST":
        form = ProductForm(request.POST)

        if form.is_valid():
            form.save()
            return redirect('index')

    else:
        form =ProductForm(request.POST)
        return render(request, 'add_new.html', {'form':form})


def edit_product(request, pk):
    item = get_object_or_404(Product, pk=pk)

    if request.method == 'POST':
        form = ProductForm(request.POST, instance=item)
        if form.is_valid():
            form.save()
            return redirect('index')

    else:
        form = ProductForm(instance=item)
        return render(request, 'edit_product.html', {'form':form})  

def sell_product(request, pk):
    item = get_object_or_404(Product, pk=pk)
    if request.method == 'POST':
        form = ProductForm(request.POST, instance=item)
        if form.is_valid():

            form.save()
            return redirect('index')
    else:
        form = ProductForm(instance=item)
        return render(request, 'sell_product.html', {'form':form})      
这是我的sell_product.html

{% extends 'base.html' %}

{% block body %}
    <div class="container">
        <form method="POST">
            <br>
            {% csrf_token %}
            <div class ="form-form row">
                <label for="UpdateSold">Units Sold</label>
                <input type="Units Sold" class="form-control" id="UpdateSold" aria-describedby="emailHelp" placeholder="Units Sold">
                </div>
            </div>
            <button type="submit" class="btn btn-primary" name="button">Update Product</button>
        </form>         
    </div>
{% endblock %}  
{%extends'base.html%}
{%block body%}

{%csrf_令牌%} 售出单位 更新产品 {%endblock%}
这里是前端的一个片段
我有25块奥利奥饼干,我卖了其中的3块,我在售出的单位中输入了3块,所以我希望奥利奥饼干的单位价值更新为22块

问题出在哪里,或者你有什么问题?你试过什么?@TimmyO'Mahony如果我点击销售按钮,它会将我重定向到另一个页面,在那里我必须输入我销售的特定产品的单位数量,现在我提供的输入应该会改变我单位字段中的值,但是我如何链接我的sell_product.html文件中的输入框和我的单位字段……我已经弄乱了sell_product视图,它一直给我带来错误,但是我还没有在这里发布这段代码。你能帮忙吗?