Django小撇步-1

這系列紀錄我在用django不時被雷的小地方,不是什麼完整的教學

1. 在建好新model但卻不管怎樣makemigrations他都沒有被建成database的table

https://stackoverflow.com/questions/34548768/django-no-such-table-exception
這篇裡面提到一個原因,在views.py最外面先call過那個object了,導致剛開始一import就壞掉了,也不會繼續建table
但我在把寫在外面的部分註解掉之後,makemigrations就變成no change detected了。

最後用 python manage.py makemigrations <app_name> 終於讓他成功找到我要更新的部分並且建立了table。


2. lock

我目前有個網站是用pexpect去跑process接後端語言生成的model,所以如果同時有多人使用網站,model就會吃到一堆input (我只跑了一個process),然後回傳的值就會是亂的,所以我選擇用lock讓後來的人等前面的人整部分生成完後再開始生成。
我將lock放在database中,要的人去request,但如果時間真的卡很緊,在改值跟save之間會有race condition,不知道有沒有比較好的做法?

留言

熱門文章