2015-10-13 1 views
1

У меня есть стандартный метод ОЦК обновления для моей модели Announcement:Проверьте наличие измененного поля в Django ОЦК Обновление

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, как я могу проверить, было ли поле boolean draft изменено, и если это так, делайте что-нибудь?

ответ

1

Вы можете сделать это с помощью:

if 'value' in form.changed_data: 

где:

  • form Ваш AnnouncementForm и был утвержден первым (form.is_valid)
  • value это имя поля

Поскольку вы используя CBV, вы можете поместить логику в метод form_valid, чтобы убедиться, что все данные правильно проверены (если у вас нет другого варианта использования)

+0

Можете ли вы помочь мне с правильным способом вызова form_valid? Я борюсь с этими CBVs – 43Tesseracts

+0

@ 43Tesseracts Не могли бы вы указать, с чем конкретно вы столкнулись? – mariodev

 Смежные вопросы

  • Нет связанных вопросов^_^