我的模型 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/

    10-11 19:38