Python 引用属性错误/应用程序引擎已赢得';不渲染页面
我建立了一个一对多的关系模型,其中一个用户可以销售很多东西 在销售页面上,我有用户输入的用户信息:名字、姓氏、电子邮件 以及他们想要销售的商品信息:商品名称、商品价格、商品标签 我没有使用参考产权吗?当localhost运行时,页面为空Python 引用属性错误/应用程序引擎已赢得';不渲染页面,python,google-app-engine,web-applications,jinja2,Python,Google App Engine,Web Applications,Jinja2,我建立了一个一对多的关系模型,其中一个用户可以销售很多东西 在销售页面上,我有用户输入的用户信息:名字、姓氏、电子邮件 以及他们想要销售的商品信息:商品名称、商品价格、商品标签 我没有使用参考产权吗?当localhost运行时,页面为空 class UserModel(db.Model): first_name = db.StringProperty(required = True) last_name = db.StringProperty(required = True)
class UserModel(db.Model):
first_name = db.StringProperty(required = True)
last_name = db.StringProperty(required = True)
email = db.StringProperty(required = True)
class SellModel(db.Model):
user = ReferenceProperty(UserModel, collection_name = "sells")
item_name = db.StringProperty(required = True)
item_price = db.StringProperty(required = True)
item_tag = db.StringProperty(required = True)
class Sell(Handler):
def get(self):
self.render("sell.html")
def post(self):
item_name = self.request.get('item_name')
item_price = self.request.get('item_price')
item_tag = self.request.get('item_tag')
first_name = self.request.get('first_name')
last_name = self.request.get('last_name')
email = self.request.get('email')
if item_name and item_price and item_tag and first_name and last_name and email:
user = UserModel(key_name = "user",
first_name = first_name, last_name = last_name,
email = email)
user.put()
sell = SellModel(user = user, item_name = item_name, item_price = item_price, item_tag = item_tag)
sell.put()
stat = "your item has been recorded"
self.render("sell.html", stat = stat)
else:
error = "make sure you fill out every box"
self.render("sell.html",
item_name = item_name, item_price = item_price, item_tag = item_tag,
first_name = first_name, last_name = last_name,
email = email, error=error)
sell.html:
<form method="post">
<label>item name</label>
<input type="text" name="item_name" value="{{item_name}}">
<label>item price</label>
<input type="text" name="item_price" value="{{item_price}}">
<label>tag</label>
<input type="text" name="item_tag" value="{{item_tag}}">
<label>first name</label>
<input type="text" name="first_name" value="{{first_name}}">
<label>last name</label>
<input type="text" name="last_name" value="{{last_name}}">
<label>email</label>
<input type="text" name="email" value="{{email}}">
<div><input type="submit" value="Okay"></div>
<div class = "stat">{{stat}}</div>
<div class="error">{{error}}</div>
</form>
只需提交用户和销售,页面就会显示出来。这一行是什么把这一页弄乱了
编辑:
缩进来自复制和粘贴,并且正好在代码中。在我从中继承的处理程序类中
def render(self, template, **kw):
self.write(self.render_str(template, **kw))
因此,问题不应该出现在get方法中 您的get方法应该是这样的:
def get(self):
f=open('sell.html','r')
sourceHtml = unicode(f.read(),errors='ignore')
f.close()
self.response.write(sourceHtml)
我也看到缩进问题。Sell类与get()方法的级别相同。该方法应该是内部的一级。刚刚发现错误。忘了在ReferenceProperty前面加上“db.”。哈哈
def get(self):
f=open('sell.html','r')
sourceHtml = unicode(f.read(),errors='ignore')
f.close()
self.response.write(sourceHtml)