- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
您好,我收到一条奇怪的错误消息:Property user is corrupt in the datastore
你能告诉我这意味着什么以及我应该做什么吗?这是完整的轨迹
2011-05-04 01:35:15.144
Property user is corrupt in the datastore:
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 958, in _FromPb
value = datastore_types.FromPropertyPb(prop)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1785, in FromPropertyPb
_strict_mode=False)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/users.py", line 115, in __init__
assert _auth_domain
AssertionError
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 698, in __call__
handler.get(*groups)
File "/base/data/home/apps/classifiedsmarket/dev.350122009565563926/i18n.py", line 266, in get
ads = Ad.all().filter("modified >", timeline).filter("published =", True).filter("modified <=", bookmark ).order("-modified").fetch(PAGESIZE+1)
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/db/__init__.py", line 2025, in fetch
raw = raw_query.Get(limit, offset, config=config)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 1504, in Get
batch = batcher.next_batch(limit)
File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_query.py", line 2220, in next_batch
batch = self.__next_batch.get_result()
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/apiproxy_stub_map.py", line 592, in get_result
return self.__get_result_hook(self)
File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_query.py", line 1998, in __query_result_hook
self.__results = self._process_results(query_result.result_list())
File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_query.py", line 2031, in _process_results
for result in results]
File "/base/python_runtime/python_lib/versions/1/google/appengine/datastore/datastore_rpc.py", line 127, in pb_to_query_result
return self.pb_to_entity(pb)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 242, in pb_to_entity
return Entity._FromPb(pb)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 962, in _FromPb
(prop.name(), traceback.format_exc()))
Error: Property user is corrupt in the datastore:
Traceback (most recent call last):
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore.py", line 958, in _FromPb
value = datastore_types.FromPropertyPb(prop)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/datastore_types.py", line 1785, in FromPropertyPb
_strict_mode=False)
File "/base/python_runtime/python_lib/versions/1/google/appengine/api/users.py", line 115, in __init__
assert _auth_domain
AssertionError
编辑:这是我的整个模型。我没有为几个部署更改它:
class Ad(GeoModel,search.SearchableModel):
primary_image = blobstore.BlobReferenceProperty()
ip=db.StringProperty(indexed=False,verbose_name="ip")
ipcountry=db.StringProperty(indexed=False,verbose_name="origin")
tags=db.ListProperty(db.Category)
category=db.CategoryProperty(choices=('0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31'),default='1',verbose_name="Category") #numeric for now
title=db.StringProperty(verbose_name="title")#required
type=db.StringProperty(choices=('w','s','r','l','b'),default='s',verbose_name="ContentType")#sell,wanted,rent,lease,buy
company_ad=db.BooleanProperty(default=False,verbose_name="company_ad")#false or nothing
user=db.UserProperty(verbose_name="userid")
facebookID=db.IntegerProperty(verbose_name="facebook id")
twitterID=db.IntegerProperty(verbose_name="twitter id")
im=db.IMProperty(verbose_name="nickname")#optional, xmpp
place=db.StringProperty()# postaladdress should work
url=db.StringProperty(verbose_name="url")
link=db.LinkProperty(verbose_name="Link")#enable
geopt=db.GeoPtProperty(verbose_name="geopt")
geohash=db.StringProperty(indexed=False,verbose_name="geocode")#should we use this?
rating=db.RatingProperty()
text=db.TextProperty(verbose_name="text")
currency=db.StringProperty(choices=('EUR','ARS','AUD','BRL','GBP','CAD','CZK','DKK','HKD','HUF','ILS','INR','JPY','MXN','NZD','NOK','PLN','PHP','SGD','SEK','SGD','CHF','USD', 'THB','TWB'),verbose_name = "Currency")
price=db.StringProperty(verbose_name="price")#floatfree, digits, decimals, regexable or integer valid8able
phonenumber=db.PhoneNumberProperty(indexed=False,verbose_name="phonenumber")#viewbit
postaladress=db.PostalAddressProperty(indexed=False,verbose_name="postaladdress")
phoneview=db.BooleanProperty(default=False,verbose_name="phoneview")#add2phone
email=db.EmailProperty(indexed=False,verbose_name="Email")#optional
name=db.StringProperty(verbose_name="Name")
#owner=db.UserProperty(verbose_name="Owner")
published=db.BooleanProperty(default=True,verbose_name="published")
#submitted=db.BooleanProperty(default=False,verbose_name="submitted")#edit
#montao=db.BooleanProperty(default=False,verbose_name="montao")#migr8
#moderated=db.BooleanProperty(default=False,verbose_name= "moderated")#edit
added=db.DateTimeProperty(verbose_name="added",auto_now_add=True)#readonly
modified=db.DateTimeProperty(verbose_name="modified",auto_now_add=True)
last_modified = db.DateTimeProperty(required=True, auto_now=True)
crypted_password=db.StringProperty()#set default true random
salt=db.StringProperty()# merge with passwrd, set default true random or why even store? counterexample
timestamp=db.DateTimeProperty(auto_now=True)#backupsystem
def __unicode__(self):
return self.title
def to_json(self):
data={}
for prop in self.properties().values():
data[prop.name] = prop.get_value_for_datastore(self)
return simplejson(data)
def __encrypt(self, plaintext, salt=""):
"""returns the SHA1 hexdigest of a plaintext and salt"""
phrase = hashlib.sha1()
phrase.update("%s--%s" % (plaintext, salt))
return phrase.hexdigest()
def set_password(self, new_password):
"""sets the user's crypted_password"""
#from datetime import datetime, timedelta
import datetime
if not self.salt:
self.salt = self.__encrypt(str(datetime.datetime.now()))
self.crypted_password = self.__encrypt(new_password, self.salt)
def check_password(self, plaintext):
return self.__encrypt(plaintext, self.salt) == self.crypted_password
def next(self):#enable
return Ad.all().filter("published =", True).filter("modified >", self.modified).get()
def prev(self):#enable
return Ad.all().filter("published =", True).filter("modified <", self.modified).get()
return levenshtein(self.text,self.prev().text)
'''
def uri2view(self):#enable get_serving_url
return images.get_serving_url(str(self.matched_images.get().primary_image.key()))+'=s100'
def kmluri2view(self):#enable get_serving_url
return self.matched_images.get()
def to_dict(self):
tempdict1 = dict([(p, unicode(getattr(self, p))) for p in self.properties()])
tempdict2 = {'key':unicode(self.key())}
tempdict1.update(tempdict2)
return tempdict1
编辑 2:通过更改变量 PAGESIZE,我可以为最新的实体加载页面。我没有找到错误开始/结束的位置:def get(self, cursor=None, limit=60, PAGESIZE = 1):
有效,我现在尝试使用更大的 PAGESIZE 即 def get(self, cursor=None, limit=60, PAGESIZE = 10):
最佳答案
这是 App Engine 数据存储区的一个已知问题。它与您的代码或应用无关。
App Engine 团队正在努力修复,在您等待期间,此处发布了一个解决方法:http://groups.google.com/forum/#!topic/google-appengine-python/ClkOIalYD3s
关于python - 数据存储 : 中的属性用户已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880741/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!