我的模型有7个字段,但是我想更新一个唯一的字段。我正在将CBC(generic.UpdateView
)与模型和form_class
一起使用。我的表格正常工作,但是,
我想根据此字段的值执行操作。
我不知道哪种方法可以覆盖。
ModelA:
atribute_a
atribute_b
atribute_c
我只需要更改atribute_a
,但是atribute_b
是dateTime
,并且我想在更新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)
答案 0 :(得分:0)
我在def save(self, commit=True):
中使用了forms.py
,在我的view.py
中,我将generic.UpdateView
与model
和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