inspectdbを修正した後、Web上のインデックスページがロードされたときに実行したい。したがって、私のview.py - defインデックスでは、私は次をしようとしています:サーバのファイルを上書きするために外部コマンド(Django)を実行する方法は?
def index(request):
subprocess.Popen("rm /path/app/models.py", shell=True)
subprocess.Popen("python2.7 /path/manage.py inspectdb_New > /path/app/models.py", shell=True)
return render_to_response('index/index.html', context_instance = RequestContext(request))
これは動作していません。 os.system、subprocess.callも試しましたが、まだ動作していません。 少なくとも、実行時間にmodels.pyを変更できないようですが、何が問題なのか分かりません...
何人か考えてみませんか?
ありがとうございました。
本当にわかりません。私はサーバーが短時間ごとにモデルに相談していると思う。 私は今しようとしています: subprocess.Popen( "python2.7 /path/manage.py inspectdb> /path/app/models1.py"、shell = True) subprocess.Popen( "mv/path/models1。 py /path/models.py "、shell = True) これは時々動作しています。私はサーバーがコンサルティングモデルであり、外部コマンドが同時にオーバーライティングされているとします。ウェブがクラッシュし、モデルが空になりますが、別の時に動作します(サーバーのコンサルティングと一致しないときに再び推測します)... –
いいえモデルは起動時にのみロードされます。たぶんあなたはあなたが達成したいことを説明します。おそらく、より良い/より簡単な解決策があります。 – ilse2005
さて、誰かがddbbを変更する(消去、追加、テーブルの変更など)、いつもモデルを更新したいのですが、この変更はWebに反映されます(Webは常に起動されます) –