具體來說,我試圖使用一個字符串來任意過濾ORM。我已經嘗試了exec和eval解決方案,但是我正在碰壁。下面的代碼無法正常工作,但它是我知道該怎麼解釋的最好方式,我試着去如何使用字符串作爲關鍵字參數?
from gblocks.models import Image
f = 'image__endswith="jpg"' # Would be scripted in another area, but passed as text <user input>
d = Image.objects.filter(f)
#for the non-django pythonistas:
d = Image.objects.filter(image__endswith="jpg")
# would be the non-dynamic equivalent.
不要剝去它。改用'ast.literal_eval()'。 – 2010-05-28 21:42:21
好吧,與那個相關的話,如果我還想'datetime.date(2005,1,3)'作爲有效的過濾器,我可以使用常規的eval()嗎? – 2010-05-28 22:09:19