非模型字段我需要在Django形式添加一個簡單的非模型字段:訪問在pre_save信號
<input type="text" name="setupwork" value=""/>
然後在pre_save信號訪問其值。
有沒有辦法做到這一點,我看着pre_save參數:發件人,實例,使用,** kwargs,但無法找到該字段。
非模型字段我需要在Django形式添加一個簡單的非模型字段:訪問在pre_save信號
<input type="text" name="setupwork" value=""/>
然後在pre_save信號訪問其值。
有沒有辦法做到這一點,我看着pre_save參數:發件人,實例,使用,** kwargs,但無法找到該字段。
這聽起來好像你只是想添加到您的形式隱藏字段,然後你就可以檢查是否有在它
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
謝謝,但沒有更全球的方式來做到這一點:我無法訪問某些第三方模塊的模型和查看代碼 –
請嘗試製作一個[mcve]的實際問題... – Sayse
答什麼:我在想,我可以從pre_save訪問FORM信號。正如上面的貢獻者所解釋的那樣,情況並非如此。您只能訪問與表單相關的模型數據。所以在我的情況下,只添加到html表單的字段現在將顯示在pre_save實例中。
我通過創建自定義中間件來解決問題,該中間件可以在任何POST方法上觸發,並檢查分離的html表單字段的存在和內容。
'pre_save'是一個模型的信號,而不是一個形式,你究竟想要做什麼? – Sayse
我想要一個'蜜罐'字段,這是一個隱藏的表單字段,應該總是空的(人類不會填充它)。所以我需要檢查任何時候表單提交這個領域確實是空的。有一個模塊,但它導致django-allauth的問題,所以我嘗試做簡單的自定義實現。有形式的信號嗎? –
那麼你想使用模型表單還是隻是試圖在表單中包含一個隱藏的字段? – Sayse