if request.method == 'POST':
    userf = UsersModelForm(request.POST)
    username = userf.data['username']
    password = userf.data['password']
    passwordrepeat = userf.data['passwordrepeat']
    email = userf.data['email']

我试过这个:

    tempSalt = bcrypt.gensalt()
    password = bcrypt.hashpw(password,tempSalt)
    passwordrepeat = bcrypt.hashpw(passwordrepeat,tempSalt)

    userf.data['password'] = password
    userf.data['passwordrepeat'] = passwordrepeat

但我弄错了.如何在保存前更改userf.data['password']userf.data['passwordrepeat']的值?

错误:

AttributeError at /register

This QueryDict instance is immutable

Request Method:     POST
Request URL:    http://127.0.0.1:8000/register
Django Version:     1.3.1
Exception Type:     AttributeError
Exception Value:    

This QueryDict instance is immutable

Exception Location:     /usr/local/lib/python2.6/dist-packages/django/http/__init__.py in _assert_mutable, line 359
Python Executable:  /usr/bin/python
Python Version:     2.6.6
Python Path:    

['/home/user1/djangoblog',
 '/usr/lib/python2.6',
 '/usr/lib/python2.6/plat-linux2',
 '/usr/lib/python2.6/lib-tk',
 '/usr/lib/python2.6/lib-old',
 '/usr/lib/python2.6/lib-dynload',
 '/usr/local/lib/python2.6/dist-packages',
 '/usr/lib/python2.6/dist-packages',
 '/usr/lib/python2.6/dist-packages/gst-0.10',
 '/usr/lib/pymodules/python2.6',
 '/usr/lib/pymodules/python2.6/gtk-2.0']

推荐答案

如果您需要在保存之前对数据执行某些操作,只需创建如下函数:

def clean_nameofdata(self):
    data = self.cleaned_data['nameofdata']
    # do some stuff
    return data

您只需要创建一个名称为**CLEAN_**NAMEOF DATA*的函数,其中nameofdata是字段的名称,所以如果您想修改密码字段,您需要:

def clean_password(self):

如果需要修改passwordrepeat

def clean_passwordrepeat(self):

所以在里面,只需加密你的密码并返回加密的密码.

我的意思是:

def clean_password(self):
    data = self.cleaned_data['password']
    # encrypt stuff
    return data

因此,当您验证表单时,密码将被加密.

Django相关问答推荐

Django显示交叉表格

如何在创建对象后立即运行一次代码?

如何保护单个数据库行/模型实例?

try 获取静态文件路径时 Django 给出错误

try 在 django 中发送验证邮箱,出现错误

当从 fastapi 发送请求时,Django 无法对 Postgres 执行查询

如何根据状态计算表中数据的数量?

DecimalField 验证错误,返回不正确的值 Django

Django 在模型中存储用户图像

直接在模型类上使用 Django 管理器与静态方法

我的 django 模型 DateField 如何将 30 天添加到提供的值?

更新Django模型对象多个字段的有效方法

如何在 Django Rest Framework SimpleRouter 上使斜杠可选

在 Django 1.8 或更高版本中填充时出现Models aren't loaded yet"错误

在 django 中是否有生成 settings.SECRET_KEY 的功能?

django 我们可以在预取相关模型上 Select 一个字段吗?

Django - 在设置中使用反向 url 映射

Django - 保存新对象时如何获取 self.id?

Django Debug Toolbar:了解时间面板( time panel)

如何从 django 请求中获取完整的 url