![](/img/trans.png)
[英]Upgrading transaction.commit_manually() to Django > 1.6
[英]Commit manually in django
在Django模型方法中是否有更好的方法來執行以下操作? 以下內容看起來很冗長,因為我可以在SQL shell中用一行完成相同的操作:
class ItemMaster(models.Model):
...
@classmethod
@transaction.commit_manually
def update_imdb_rank(self):
'''
Update all ranks from the IMDbEntry table
'''
cursor = connection.cursor()
cursor.execute("UPDATE main_itemmaster i JOIN mturk_imdbentry m USING (imdb_url) SET i.imdb_rank=m.imdb_rank")
transaction.commit()
如果願意,可以使用with
語句來減少冗長:
class ItemMaster(models.Model):
...
@classmethod
def update_imdb_rank(self):
with transaction.atomic():
cursor = connection.cursor()
cursor.execute("UPDATE main_itemmaster i JOIN mturk_imdbentry m USING (imdb_url) SET i.imdb_rank=m.imdb_rank")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.