有在peewee中进行数学加法的功能

时间:2019-08-31 12:46:56

标签: python peewee

我还是Flask和peewee的初学者。我正在尝试为仓库制作一个Web应用程序,它应该只在本地运行。在数据库中,我具有产品模型,制造商(proizvoditel),价格(cena)和数量(kolicina)。我的问题是何时需要更新数量。

我尝试使用“ +”,但出现错误。

models.py

class Magacin(Model):
    model=CharField(unique=True)
    proizvoditel=CharField()
    cena=IntegerField()
    kolicina=IntegerField()
    timestamp=DateTimeField(default=datetime.datetime.now)

app.py

@app.route("/", methods=["GET", "POST"])
def post():
    form=forms.VnesuvanjeForm()
    if form.validate_on_submit():
        models.Magacin.create(

                               model=form.model.data,
                               proizvoditel=form.proizvoditel.data,
                               cena=form.cena.data,
                               kolicina=form.kolicina.data)
        flash("Postiranoo", "success")
        return redirect(url_for("post"))
    return render_template("vnesuvanje.html", form=form)

例如,假设数量(kolicina)为50,我需要将其更新为20。更新数量后,数量应为70。我尝试使用加号,但没有用。是否应该使用update()方法进行新视图?如果我有错误的提问,请原谅我。

1 个答案:

答案 0 :(得分:0)

在您的代码段中,您正在创建新行。

如果仅希望更新数量,则应使用.update()方法:

public class IPAddressOrHostnameAttribute : ValidationAttribute
{
     public IPAddressOrHostnameAttribute(string propertyName, object desiredvalue, string errorMessage)
    {
        PropertyName = propertyName;
        DesiredValue = desiredvalue;
        ErrorMessage = errorMessage;
    }

    private string PropertyName { get; }
    private object DesiredValue { get; }

    protected override ValidationResult IsValid(object value, ValidationContext context)
    {
        var instance = context.ObjectInstance;
        var type = instance.GetType();
        var propertyValue = type.GetProperty(PropertyName).GetValue(instance, null);
        if (propertyValue.ToString() == DesiredValue.ToString() && value != null)
        {
            if (Regex.IsMatch(value.ToString(), AckConstants.VALIDIPADDRESSREGEX)
                || Regex.IsMatch(value.ToString(), AckConstants.VALIDHOSTNAMEREGEX))
            {
                return ValidationResult.Success;
            }

            return new ValidationResult(ErrorMessage);
        }

        return ValidationResult.Success;
    }
}