2

ユースケース:のに0.0値が渡されていないときに、デフォルト値として保存したい。次のコードを書きましたが、うまくいきませんでした。peweeDoubleField

class MyRelation(peewee.Model):
    id = peewee.PrimaryKeyField()
    percentage = peewee.DoubleField(default=0.0)

ここにAPIがあります

@api_blueprint.route('/add_data', methods=['POST'])
@http_header
def add_data():
    try:
        incoming = json.loads(request.data)
        data = MyRelation(percentage=incoming["percentage"])
        data.save()

        return success_response(201,"Data has been inserted :)")

    except Exception as e:
        log(str(e))
        return raise_error(500, str(e))

次のエラーを記録します

10-05-17 05:24:51 Line:199  Message: Error in add_data(),views.api: (1048, "Column 'percentage' cannot be null")
4

1 に答える 1

3

違いは Python 側でのみ適用されます。したがって、サーバーがデフォルトを適用することを期待している場合は、制約を使用する必要があります。

percentage = peewee.DoubleField(constraints=[SQL('DEFAULT 0.0')])

ドキュメント: http://docs.peewee-orm.com/en/latest/peewee/models.html#default-field-values

于 2017-05-08T17:46:51.753 に答える