Доступ к полю не модели в сигнале pre_save
Мне нужно добавить простое не модельное поле в форме Django:
<input type="text" name="setupwork" value=""/>
затем получите доступ к его значению по сигналу pre_save.
Есть ли способ сделать это, я изучил параметры pre_save: sender, instance, using, **kwargs, но не смог найти это поле.
2 ответа
Звучит так, как будто вы просто хотите добавить к своей форме скрытое поле, которое затем вы можете проверить, есть ли в нем что-то
class MyForm(Form):
my_field = forms.CharField(widget=forms.HiddenInput())
def clean_my_field(self):
data = self.cleaned_data['my_field']
if data:
raise ValidationError()
return data
Ответ: Я думал, что смогу получить доступ к FORM из сигнала pre_save. Как объяснено выше авторами, это НЕ так. Вы можете получить доступ только к данным модели по отношению к форме. Так что в моем случае поле, добавленное только в html-форму, теперь будет отображаться в экземпляре pre_save.
Я решил эту проблему, создав специальное промежуточное программное обеспечение, которое будет запускаться при любом методе POST, и проверил наличие и содержимое поля формы html с развязкой.