Установить значение поля в методе Django Form clean (), если это поле не передано в конструктор

Мне нужно установить значение поля, не передаваемое конструктору формы Django.

I иметь такую ​​модель и форму:

class Message(models.Model):
    created     = models.DateTimeField()
    text        = models.CharField(max_length=200, blank=True, null=True)
    active      = models.BooleanField(default=False)

class MessageForm(forms.ModelForm):
    class Meta:
        model   = Message
        exclude = ('created', 'active')

    def clean(self):
        # check if user is blocked
        if user.is_admin():
            self.cleaned_data['active'] = True
        return self.cleaned_data

Ожидаемый : если текущий пользователь является администратором - мне нужно автоматически установить активное сообщение. Пользователь не должен передавать этот параметр по форме.

Фактическое : Я вижу, что сохраненное сообщение всегда имеет флаг «Ложь» (я могу удалить условие, и в этом случае я также вижу, что сообщение неактивно).

Пожалуйста, помогите мне понять, как мне установить этот флаг « active » в методе clean () .

5
задан 3 November 2010 в 14:52
поделиться