我的模型Announcement
有一个标准的CBV更新方法:
models.py:
class Announcement(models.Model):
title = models.CharField(max_length=80)
...
draft = models.BooleanField(default = False)
view.py:
class Update(UpdateView):
model = Announcement
form_class = AnnouncementForm
template_name = 'announcements/form.html'
@method_decorator(staff_member_required)
def dispatch(self, *args, **kwargs):
return super(Update, self).dispatch(*args, **kwargs
使用此CBV Update
,如何检查布尔draft
字段是否已更改,如果是,则执行操作?
答案 0 :(得分:3)
你可以这样做:
if 'value' in form.changed_data:
其中:
form
是您的AnnouncementForm
,并且已经过首次验证(form.is_valid
)value
是字段名称由于您正在使用CBV,您可以将逻辑放在form_valid
方法中,以确保所有数据都经过正确验证(除非您有不同的用例)