访问pre_save信号中的非模型字段

时间:2017-01-16 13:14:01

标签: django django-forms

我需要以django形式添加一个简单的非模型字段:

<input type="text" name="setupwork" value=""/>

然后在pre_save信号上访问它的值。

有没有办法这样做,我查看了pre_save参数:sender,instance,using,** kwargs但无法找到该字段。

2 个答案:

答案 0 :(得分:1)

听起来好像你只想在表单中添加一个隐藏字段,然后你可以检查它是否有任何内容

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

答案 1 :(得分:0)

答:我以为我可以从pre_save信号访问FORM。如上文贡献者所解释的那样,情况并非如此。您只能访问与表单相关的模型数据。因此,在我的情况下,仅添加到html表单的字段现在将显示在pre_save实例中。

我通过创建一个可以在任何POST方法上触发的自定义中间件解决了这个问题,并检查了解耦的html表单字段的存在和内容。