43T*_*cts 2 python django django-views django-class-based-views
我的模型有一个标准的CBV更新方法Announcement:
models.py:
class Announcement(models.Model):
title = models.CharField(max_length=80)
...
draft = models.BooleanField(default = False)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
使用此CBV Update,我如何检查布尔值draft字段是否已更改,如果已更改,是否可以处理?
您可以执行以下操作:
if 'value' in form.changed_data:
Run Code Online (Sandbox Code Playgroud)
哪里:
form是您的AnnouncementForm,并且已首先通过验证(form.is_valid)value 是字段名称由于使用的是CBV,因此可以将逻辑放入form_valid方法中,以确保所有数据均得到正确验证(除非您有其他用例)
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |