创建字段返回为'无'
问题描述:
在我的web2py应用程序中,我使用SQLFORM将数据添加到名为'review'的数据库表中。创建字段返回为'无'
但是,如果created_by字段显示登录用户的名字,则返回值为none。
任何想法可能是错的,我该如何纠正这一点?
控制器 - default.py
def addReview():
response.menu = [
(T('Back to Reviews'), False, URL('default', 'index'))
]
review_form = SQLFORM(db.review)
if review_form.process().accepted:
session.flash = 'Review has been added!'
elif review_form.errors:
response.flash = 'Please review the form for errors'
return dict(review_form=review_form)
模型 - db.py
db.define_table('product',
Field('name', requires=[IS_NOT_EMPTY(), IS_ALPHANUMERIC()]),
Field('description', 'text', requires=IS_NOT_EMPTY()),
Field('stock_level', 'integer')
)
db.define_table('review',
Field('product', 'reference product', writable=False, readable=False),
Field('title', requires=IS_NOT_EMPTY()),
Field('body', 'text', requires=IS_NOT_EMPTY()),
Field('created_by', 'reference auth_user', writable=False),
Field('added', default=request.now, writable=False)
)
答
Field('created_by', 'reference auth_user', writable=False)
的created_by
字段不可写,并且没有缺省指定,所以当插入件由,这个领域没有价值。如果你想插入一个值,你必须指定一个默认值。可能您希望当前登录的用户:
Field('created_by', 'reference auth_user', writable=False, default=auth.user_id)