如何更新模型并对此对象或其他对象执行某些操作?

时间:2018-11-20 03:23:36

标签: python django django-models django-views

我的模型有7个字段,但是我想更新一个唯一的字段。我正在将CBC(generic.UpdateView)与模型和form_class一起使用。我的表格正常工作,但是, 我想根据此字段的值执行操作。

我不知道哪种方法可以覆盖。

ModelA:
atribute_a
atribute_b
atribute_c

我只需要更改atribute_a,但是atribute_bdateTime,并且我想在更新atribute_b时用timezone.now()更新atribute_a ,之后,我想用atribute_c用ForeignKey更新另一个对象。

基本上在UpdateView中,我想要这样: 用某种方法(保存,发布,分发或其他)

atribute_b = timezone.now()
if atribute_a == 'abc':
    ModelB.objects.filter(atribute_c=atribute_c).update(atribute_c = atribute_c+1)

1 个答案:

答案 0 :(得分:0)

我在def save(self, commit=True):中使用了forms.py,在我的view.py中,我将generic.UpdateViewmodelform_class一起使用了。

我表单中的代码。

class MyForm(ModelForm):
    class Meta:
        fields = ['atribute_a']
        exclude = ['atribute_b', 'atribute_c']

    def save(self, commit=True):
        instance = super(MyForm, self).save(commit=False)
        instance.atribute_b = timezone.now()
        # do something with FK