语法错误:
msg = "keyword can't be an expression"
offset = None
print_file_and_line = None
text = 'data = data(name and mood=self.request.POST)\n'
我在这里发布了大部分代码,即使我的数据存储区有一个名为“情境,日期属性”的“访问者”实体(index.yaml文件显然正常工作),表单数据也没有提交给数据存储区在控制台查询中很明显:
SELECT name FROM Visitor
^ SyntaxError: invalid syntax
以下的最后一部分是我猜测如何修改Google教程。我知道这是错的,但希望你看到我正在做的事情:
class Visitor(db.Model):
name = db.StringProperty(required=1)
mood = db.StringProperty(choices=["Good","Bad","Fair"]) # this is Radio button
date = db.DateTimeProperty(auto_now_add=True)
class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write("""<html><body>
<form action="/" method="post">
<p>First Name: <input type="text" name="name"/></p> # text
<p><input type="radio" name="mood" value="good">Good</p> # radio button v
<p><input type="radio" name="mood" value="bad">Bad</p>
<p><input type="radio" name="mood" value="fair">Fair</p>
<p><input type="submit"value="Process"></p>
</form></body></html>""")
def post(self):
name = self.request.get("name")
mood = self.request.get("mood")
data = data(name and mood=self.request.POST) # < < ^ ^ PROBLEM(S)
if data.is_valid():
Visitor = data.save(commit=False)
Visitor.put()
提前感谢帮助实现预期目标。
答案 0 :(得分:2)
正如你所指出的那样,你的问题就在这一行
data = data(name and mood=self.request.POST)
语法错误是因为您尝试在表达式中进行赋值。
mood=self.request.POST
#"name and mood" is a logical expression which will return
#"mood" if bool(name) is True and bool(mood) is True
#Otherwise it returns the first False value.
data=data(name and mood)
当然,这也很有趣,因为数据可能是一个可调用的,你用它的结果取而代之......
此外,数据没有在任何地方定义(我们可以看到)......所以当我们摆脱一个语法错误时,你的脚本中可能存在(可能)其他问题。