0

したがって、フィールドを持つPickupScheduleモデルがありますcurrent_count。寄付が送信されると、current_countが増加します。寄付のスケジュールが変更されると、寄付は減少し、新しいルートが増加します。同じことをする免除プロセスもあります。重複コードを避けるために、私は以下のようなことをしたいと思っていましたが、それは機能しません(属性エラー- 'PickupSchedule' object has no attribute 'decrease_current_count')。フォーム保存内のフィールドを+=できることはわかっていますが、2つの別々のフォームにするのではなく、1つの場所に配置したいと思います。

models.py

class PickupSchedule(models.Model):

    current_count= models.IntegerField(blank=True, default=0)

    def __unicode__(self):
        return self.route 

    def decrease_current_count(self):
        self.current_count -= 1
        self.save()

    def increase_current_count(self):
        self.current_count += 1
        self.save()

forms.py保存

def save(self,force_insert=False, force_update=False,commit=True):

    donor = super(RescheduleForm,self).save(commit=False)

    # Update the old route current count
    old_route = self.old_route
    old_route.decrease_current_count()

    # Update the new route current count
    new_route = PickupSchedule.objects.get(pickup_id = self.new_id)
    new_route.increase_current_count()

    if commit:
        donor.save()

    return donor
4

0 に答える 0