我的模型 Announcement
有一个标准的 CBV 更新方法:
模型.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
,我如何检查 bool draft
字段是否已更改,如果已更改,请执行操作? 最佳答案
你可以这样做:
if 'value' in form.changed_data:
在哪里:
form
是你的 AnnouncementForm
并且已经首先验证 (form.is_valid
) value
是字段名 由于您使用的是 CBV,您可以将逻辑放在
form_valid
方法中,以确保所有数据都经过正确验证(除非您有不同的用例)关于python - 检查 Django CBV 更新中的已更改字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33094522/