我还是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()
方法进行新视图?如果我有错误的提问,请原谅我。
答案 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;
}
}