class User(db.Model):
username = db.StringProperty(required=True)
password = db.StringProperty(required=True)
email_address = db.StringProperty()
class TaskPost(db.Model):
user = db.ReferenceProperty(User, collection_name='taskposts')
category = db.StringProperty()
title = db.StringProperty(required=True)
尝试与实体使用一对多关系。 如果您添加帖子,它将与用户关联。
user = User(username=self.request.cookies.get("username"))
TaskPost(user=user,others=others).put()
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 641, in validate
raise BadValueError('Property %s is required' % self.name)
BadValueError: Property password is required
因此,似乎不是将用户表与帖子相关联的最佳方式,因为用户在发布时不应输入密码。谁有更好的方法呢?提前谢谢。
答案 0 :(得分:2)
您的第一行不是检索用户,而是创建一个新用户。如果要将帖子与现有用户关联,则需要先查找用户,然后将其关联。尝试这样的事情:
q = User.all()
q.filter("username =", self.request.cookies.get('username'))
user = q.get()
TaskPost(user=user,others=others).put()