Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:一元操作数的操作数类型错误-:“type”_Python_Google App Engine_Typeerror - Fatal编程技术网

Python TypeError:一元操作数的操作数类型错误-:“type”

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(

你好

我正在使用带有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(
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