我把我的項(xiàng)目上傳到linux環(huán)境后,解壓之后,配置數(shù)據(jù)庫(kù)及其app為
host=‘0.0.0.0’,port=5005
之后運(yùn)行起來了,可是點(diǎn)擊到自定義的model 就是各種報(bào)錯(cuò),報(bào)錯(cuò)內(nèi)容都是一樣的;可是在我的個(gè)人window環(huán)境卻完全沒有問題,這是環(huán)境哪里有問題嗎?
File "/root/app/esayblog/apps/templates/admin/lib.html", line 190, in template
{{ render_field(form, f, kwargs) }}
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/jinja2/runtime.py", line 579, in _invoke
rv = self._func(*arguments)
File "/root/app/esayblog/apps/templates/admin/lib.html", line 121, in template
{% if field(**kwargs) is not none %}{% set testlabel = field(**kwargs) %}
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/wtforms/fields/core.py", line 153, in __call__
return self.meta.render_field(self, kwargs)
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/wtforms/meta.py", line 56, in render_field
return field.widget(field, **render_kw)
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/flask_admin/form/widgets.py", line 28, in __call__
return super(Select2Widget, self).__call__(field, **kwargs)
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/wtforms/widgets/core.py", line 287, in __call__
for val, label, selected in field.iter_choices():
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 168, in iter_choices
for pk, obj in self._get_object_list():
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 102, in _get_object_list
self._object_list = [(text_type(get_pk(obj)), obj) for obj in query]
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 102, in <listcomp>
self._object_list = [(text_type(get_pk(obj)), obj) for obj in query]
File "/root/.pyenv/versions/3.6.1/lib/python3.6/site-packages/flask_admin/contrib/sqla/fields.py", line 299, in get_pk_from_identity
cls, key = identity_key(instance=obj)
ValueError: too many values to unpack (expected 2)終于解決了!
原來的是同一個(gè)flask_sqlalchemy版本,但是linux版本和window版本的下的orm/mapper.py的一個(gè)方法返回的元組個(gè)數(shù)不一樣;window版返回兩個(gè)是正確的;linux版本返回三個(gè),存在bugger,估計(jì)現(xiàn)在是剛更新的和flask_admin還沒有同步:
window版的源碼:
def identity_key_from_primary_key(self, primary_key):
"""Return an identity-map key for use in storing/retrieving an
item from an identity map.
:param primary_key: A list of values indicating the identifier.
"""
return self._identity_class, tuple(primary_key)
linux版本的:
def identity_key_from_primary_key(self, primary_key, identity_token=None):
"""Return an identity-map key for use in storing/retrieving an
item from an identity map.
:param primary_key: A list of values indicating the identifier.
"""
return self._identity_class, tuple(primary_key), identity_token
所以把源碼給改成一樣的就可以了;
或者把他的調(diào)用方法給改了:
flask_admin/contrib/sqla/fields.py 改成:
def get_pk_from_identity(obj):
# TODO: Remove me
print(obj.__dict__)
print(obj.__dict__['id'])
#cls, key = identity_key(instance=obj)
key = identity_key(instance=obj)[1]
return u':'.join(text_type(x) for x in key)
即可,終于發(fā)現(xiàn)python的好處就該源碼容易??!北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。