2009-09-10
*1252558275*GAEReferenceProperty failed to be resolved
app-engine-patchのadmin画面にアクセスするとこういうエラーが出るので
||
File /.../admin/templatetags/admin_list.py, line 179, in items_for_result
field_val = getattr(result, f.attname)
File /base/python_lib/versions/1/google/appengine/ext/db/__init__.py, line 2759, in __get__
raise Error('ReferenceProperty failed to be resolved')
Error: ReferenceProperty failed to be resolved
||
admin.pyをこう書き換えてみたらエラーにならないで表示されるようになった。
|python|
class PlayerAdmin(admin.ModelAdmin):
# list_display = (
# 'user_pref', 'name', 'desc',
# 'type', 'api_key', 'entrypoint')
list_display = ('name', )
||
手動で削除とかしたせいでリファレンスが適切な状態になっていないアイテムがあるんだろうなぁ。ReferencePropertyなのはuser_prefだけなのでこれが正しくない状態になっているんだろう。Data Viewerで眺めてみたけど全部キーが入っていたので「キーが入っているのでそのキーで値を取得しようとしたらもうなくなってた!」ってことなんだろうな。
user_prefがNoneだったらわかるようにいじってみた
|python|
class Player(db.Model):
def __unicode__(self):
prefix = uDEBUG + unicode(self.user_pref) + u:
(略)
||
あー、admin画面と無関係にそもそもself.user_prefを参照できない状態になっている。そりゃそうか。
||
File /base/data/home/apps/nishiotools/1.336230617341987572/saichugen/models.py, line 146, in __unicode__
prefix = uDEBUG + unicode(self.user_pref) + u:
File /base/python_lib/versions/1/google/appengine/ext/db/__init__.py, line 2759, in __get__
raise Error('ReferenceProperty failed to be resolved')
||
じゃあ、参照できなかった時にはkey().name()を表示してもらおう。
|python|
def __unicode__(self):
try:
prefix = uDEBUG + unicode(self.user_pref) + u:
except:
return uRESOLVE_ERROR: + self.key().name()
||
結果:
||
DEBUGにしお:Desc@にしお
RESOLVE_ERROR:player_1d3ab0f82dbaa65af3b6146316da7da9
DEBUGにしお:Active@にしお
RESOLVE_ERROR:player_7e8dc6ac2aff15513637896105ca7cb1
DEBUGにしお:さんぷる@にしお
||
ふむふむ。該当のアイテムを見てみると名前もdescも空っぽだ。作成された日時を記録するようにしておけばよかったなぁ。たぶん初期の頃に僕がいじっていた時の残骸だと思うけど判断材料がない。まあ、削除するか。
*1252582562*日記
焦っても仕方ない。家事がなかなかはかどらない気になるのは、片付けても片付けても片付かないように見えるからだ。修行だと思って一歩ずつ進むしかない。
- 火曜日に受け取った実家からの小包を開封した
- 中に入っていた封書とかを開封した
- 封筒を捨てた
- 床にレシートが落ちているのに気付いたので捨てた
- 行方不明だった単語帳が発見された(机の上にあった)
- 存在をすっかり忘れていたiPodを思い出して充電した。
- 行方不明になっていた高速再生の音楽を落ちていた外付けHDDから発見した。
- 実家からの小包に入っていた2005年のクレジットカード利用明細をしばらく保管しようかと思っていたけど、よく考えたら必要ないから廃棄した
- 床に落ちていたチラシを片付けたら間から投票所入場整理券が出てきた。今更見つかってもな。