2012-04-19 198 views
0

所以我想在我的模型中有隱藏的字段,但包含默認值,因此無法更改,因此被隱藏(是否有更安全的方法使默認字段將始終是變量?)無論如何我使用擺脫ModelForm中的標籤?

username = forms.CharField(widget=forms.HiddenInput()) 

它只是隱藏了實際輸入字段,讓標籤僅僅是免費網站的HTML,所以是沒有辦法,我可以擺脫,只是自由浮動標籤周圍的一種方式?是否有更好的方式將當前登錄用戶的用戶名稱提交給模型?

現在,我用這樣的形式inital:

USER=request.user 
ref_create = CashtextsForm(initial={'username': USER}) 

是secureish?

回答

4

如果用戶不需要編輯表單字段,那麼甚至不會將其包含在模型表單中 - 甚至可以由用戶操作隱藏表單輸入。

要刪除它,只需將其添加到排除的元組在元類模型的形式:

class MyForm(forms.ModelForm): 
    class Meta: 
     model = MyModel 
     exclude = ('username',) 

然後,設置username當前用戶他們已提交表單後,您會使用檢查後如下代碼是否爲form.is_valid()

mymodel = form.save(commit=False) 
mymodel.username = request.user 
mymodel.save() 
+0

謝謝。我想隱藏的表單不是很安全,但我不知道commit = false。謝謝您的幫助 – city 2012-04-19 20:14:05