在djang中手动提交

2024-09-27 00:19:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在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()

Tags: django方法代码模型sqlmodelsshellcursor
1条回答
网友
1楼 · 发布于 2024-09-27 00:19:51

如果需要,可以使用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")

相关问题 更多 >

    热门问题