0
我想要做的是這樣的:處理數據通過創建視圖
1)我創建模型
class Example(models.Model):
username = models.CharField(max_lenght=111)
pass = models.CharField(max_lenght=111)
2)我創建形式使用的ModelForm,並添加一個額外的場
class ExampleForm(ModelForm):
extra_field= form.CharField(max_length=333)
class Meta:
model = Client
fields = ['username', 'pass']
3)我創建的視圖來處理這種形式
class Registration(CreateView):
"""
View handles user registration.
"""
form_class = ExampleForm
model = Example
template_name = 'accounts/registration.html'
success_url = reverse_lazy('accounts:registered')
現在我想要做的是做一些extra_field的自定義處理。我發現這應該在ExampleForm的保存方法中完成。例如:
def save(self, commit=True):
user = super(ExampleForm, self).save(commit=False)
data = self.cleaned_data['extra_field']
user.set_password(self.cleaned_data['pass'] + self.cleaned_data['extra_field'])
if commit:
user.save()
return user
但這不起作用。 這是處理這種情況的正確方法,還是有更好的辦法? 最大的問題是,這不是我的代碼,所以我應該只更改ExampleForm。 有沒有辦法做到這一點?
在此先感謝。
最好的問候, 尼古拉
什麼不工作?你能詳細說明嗎? – karthikr
那麼,現在我已經用extra_field = form.CharField()試過了,它可以工作。 我需要的是ImageField()。 註冊視圖永遠不會返回帳戶:註冊模板,並且從不在數據庫中創建用戶(示例)。 – Nezzit