Python TypeError:一元操作数的操作数类型错误-:“type”
你好 我正在使用带有python代码的google app engine,出现了一个问题 helloworld.py文件:Python TypeError:一元操作数的操作数类型错误-:“type”,python,google-app-engine,typeerror,Python,Google App Engine,Typeerror,你好 我正在使用带有python代码的google app engine,出现了一个问题 helloworld.py文件: import os import urllib import jinja2 import webapp2 import datetime from google.appengine.api import users from google.appengine.ext import ndb JINJA_ENVIRONMENT = jinja2.Environment(
import os
import urllib
import jinja2
import webapp2
import datetime
from google.appengine.api import users
from google.appengine.ext import ndb
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'])
class MainPage(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
template_values = {
'nickname' : user.nickname(),
}
template = JINJA_ENVIRONMENT.get_template('index.html')
self.response.write(template.render(template_values))
else:
self.redirect(users.create_login_url(self.request.uri))
class Tutorial6(webapp2.RequestHandler):
def get(self):
numbers = []
for i in range(10):
numbers.append(i)
template_values = {
'numbers': numbers
}
template = JINJA_ENVIRONMENT.get_template('/templates/tutorial6.html')
self.response.write(template.render(template_values))
class Tutorial7(webapp2.RequestHandler):
def get(self):
if users.get_current_user():
url = users.create_logout_url(self.request.uri)
url_linktext = 'Logout'
else:
url = users.create_login_url(self.request.uri)
url_linktext = 'Login'
cats_query = Cat.query().order(-Cat.date_of_birth)
cats = cats_query.fetch(10)
template_values = {
'cats': cats,
'url': url,
'url_linktext': url_linktext,
}
template = JINJA_ENVIRONMENT.get_template('/templates/tutorial7.html')
self.response.write(template.render(template_values))
def post(self):
user = users.get_current_user()
if user:
cat = Cat()
cat.owner = user
cat.name = self.request.get('name')
cat.description = self.request.get('description')
day = self.request.get('day')
month = self.request.get('month')
year = self.request.get('year')
cat.date_of_birth = datetime.date(year=int(year), month=int(month), day=int(day))
cat.put()
self.redirect('/tutorial7')
else:
self.redirect(users.create_login_url(self.request.uri))
class Cat(ndb.Model):
owner = ndb.UserProperty()
name = ndb.StringProperty()
date_of_birth = ndb.DateProperty
description = ndb.StringProperty(indexed=False)
application = webapp2.WSGIApplication([
('/', MainPage),
('/tutorial6', Tutorial6),
('/tutorial7', Tutorial7),
], debug=True)
当我在本地服务器上测试时,它给出了以下错误消息:
File "/home/RMITVNNET/s3408675/Desktop/.HDrive/s3372661-s3408675/helloworld.py", line 58, in get
cats_query = Cat.query().order(-Cat.date_of_birth)
TypeError: bad operand type for unary -: 'type'
虽然代码看起来不错,但我不知道出了什么问题。有没有办法解决这个问题 看看你的猫课 出生日期属性定义不正确,否。这就解释了这个错误,因为一元运算符不能处理这个类,它需要一个属性的实例 因此,而不是出生日期=ndb.DateProperty
它应该看起来像date_of_birth=ndb.DateProperty看看您的Cat类 出生日期属性定义不正确,否。这就解释了这个错误,因为一元运算符不能处理这个类,它需要一个属性的实例 因此,而不是出生日期=ndb.DateProperty 它应该看起来像date\u of\u birth=ndb.DateProperty