2010-07-25 22 views
0
class SomeModel(models.Model): 
    text = models.TextField() 
    ip = models.IPAddressField() 
    created_on = models.DateTimeField() 
    updated_on = models.DateTimeField() 

說我有,作爲一個模型,如果我想要什麼,只顯示「文本」字段的控件的用戶提交的數據,但我顯然不想讓用戶可以查看ip,created_on,updated_on的小部件以進行更改。是的,我知道我可以將它作爲表單的隱藏字段添加,但這不是我要查找的內容。Django的形式,節省非用戶提交的數據

我更想知道如何在渲染我的表單時不渲染這些字段,並且在表單發佈並通過表單驗證時動態填充字段?我猜想在表單被清理/驗證時,以某種方式覆蓋了ip,created_on,updated_on的空白值。我知道如何在視圖中使用request.POST.copy並注入我的值,但我想知道模型或表單中是否有可能。

回答

2

兩件事情:

首先ModelForms

Class SomeModelForm(ModelForm): 
    class Meta: 
     exclude = ['ip','created_on', 'updated_on'] 

兩個Model Fields API

class SomeModel(models.Model): 
    text = models.TextField() 
    ip = models.IPAddressField() 
    created_on = models.DateTimeField(auto_now_add=True) 
    updated_on = models.DateTimeField(auto_now=True) 

三:

對於IP,我想你應該給你的意見。