首页 > 解决方案 > 如何更新模型并对这个对象或其他对象做一些事情?

问题描述

我的模型有 7 个字段,但我只想更新一个字段。我将 CBC( generic.UpdateView) 与模型和form_class. 我的表单工作正常,但是,我想根据该字段的值来做事。

我不知道什么方法覆盖。

ModelA:
atribute_a
atribute_b
atribute_c

我只需要 change atribute_a,但是atribute_b是 a dateTime,并且 a 我想在 updateatribute_btimezone.now()更新atribute_a,然后我想用 ForeignKey 更新另一个对象,atribute_c例如。

基本上在 UpdateView 中,我想要这个:在某种方法中(保存、发布、调度或其他)

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

标签: pythondjangodjango-modelsdjango-views

解决方案


def save(self, commit=True):在 my中使用过forms.py,在我中view.py我使用generic.UpdateViewmodeland form_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

推荐阅读