sql >> データベース >  >> RDS >> PostgreSQL

SUMを制限してINSERTでDjangoの競合状態を防ぐ方法は?

    私を正しい方向に向けてくれた@Alasdairに感謝します。

    instのフィールドに入力した後 (新しいExpense )、実行:

    with transaction.atomic():
        project = models.Project.objects.select_for_update().get(
            pk=project_id)
        cost = project.total_cost()
        budget = project.budget
    
        if cost + inst.cost > budget:
            raise forms.ValidationError(_('Over-budget'))
    
        self._inst.save()
    

    total_costがあることに注意してください Projectのメソッドとして定義されています :

    class Project:
        def total_cost(self):
            return self.expense_set.all().aggregate(
                t=Sum(F('cost')))['t']
    



    1. Rails 3.2.1に移行した後、リレーションの翻訳は存在しません

    2. FREETEXTTABLE のランクは常に 0 です

    3. phpMysqlにウルドゥー語データを挿入する際のエラー

    4. Mysql-それぞれがアルファベットの文字で始まる26のレコードを検索する方法は?