0
我遇到了一個問題與cursor.execute,移動到我的程序完全分開的部分,並遇到同樣的問題。我得到一個遊標返回值是:「django.db.backends.util.CursorDebugWrapper object」。我在我看來代碼:Django Cursor.Execute問題與Postgresql
在另一個.py文件我有:
region_id=connections['default'].cursor()
region_id.execute("SELECT id FROM \"pecasRunLog_modelinstance\" where model_region='{0}'".format(region))
run_id=connections['default'].cursor()
run_id.execute("SELECT id FROM \"pecasRunLog_runinstance\" where run_name='{0}'".format(schema+timestamp))
這些調用在下面的代碼段用於:
url_login='/pecasRunLog/accounts/login/'
url_add_run='/pecasRunLog/model/'+region+'/add_run/'
url_add_comment='/pecasRunLog/model/'+region+'/'+schema+timestamp+'/add_comment/'
client = requests.session()
client.get(url_login)
csrftoken = client.cookies['csrftoken']
login_data = {'username':user,'password':password, 'csrfmiddlewaretoken':csrftoken, 'next': '/pecasRunLog/'}
r1=client.post(url_login,data=login_data)
run_data={'model_region':region_id,'scendir':scendir, 'mapit_scenario': schema, 'run_name':schema+timestamp, 'run_computer_name':os.environ['COMPUTERNAME'], 'run_computer_ip':get_lan_ip(), 'declared_user':declared_user, 'logged_in_user':getpass.getuser(), 'sd_schema':schema, 'sd_database':database, 'sd_host':get_lan_ip(), 'sd_port':pgport,'mapit_schema':schema, 'mapit_database':database, 'mapit_host':get_lan_ip(), 'mapit_port':pgport,'start_date':start_date, 'start_time':start_time, 'end_date':end_date, 'end_time':end_time,'logged_manually':3}
r2=client.post(url_add_run,data=run_data)
comment_data={'model_region':region_id, 'run_name':run_id, 'comment':run_comment}
r3=client.post(url_add_comment,data=comment_data)
這樣做的目的代碼是獲取登錄數據,然後從python腳本發佈模型運行數據和註釋。該腳本無需註釋即可正常工作(上面的r3)。我需要「region_id」和「run_id」,因爲它們是Django模型之間的外鍵。
你如何聲明遊標(model_id,run_id,region_id)? – khampson
我用更多的代碼更新了我的問題的第二部分。第一部分(對於model_id)類似,它有兩個連續的遊標調用。 –