python - 如何更新模型并对这个对象或其他对象做一些事情?
问题描述
我的模型有 7 个字段,但我只想更新一个字段。我将 CBC( generic.UpdateView
) 与模型和form_class
. 我的表单工作正常,但是,我想根据该字段的值来做事。
我不知道什么方法覆盖。
ModelA:
atribute_a
atribute_b
atribute_c
我只需要 change atribute_a
,但是atribute_b
是 a dateTime
,并且 a 我想在 updateatribute_b
时timezone.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)
解决方案
我def save(self, commit=True):
在 my中使用过forms.py
,在我中view.py
我使用generic.UpdateView
过model
and 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
推荐阅读
- r - R slidy_presentation 中的两列幻灯片
- nix - 关于 Nix 包管理的 Nix 表达式是什么?
- python - 如何检查for循环是否在中间值
- ruby-on-rails - 当我想重新注册表单时收到以下错误:NoMethodError (undefined method `permit' for "create":String)
- javascript - jquery touchswipe 插件在 iOS 上无法正常工作
- android - 自定义工具栏
- java - 有没有按照我们想要的顺序显示两个不同类的两个对话框?
- three.js - 无法使用 THREE.js 和 Mapbox GL 投射阴影
- javascript - 如何通过 $POST 从 ajax 发送对象数据(从 jQuery 到 vanilla JS)
- laravel - 有没有办法将电话身份验证添加到默认的 laravel auth 脚手架