如何在保存之前为django表单的字段赋值?

iCo*_*unk 5 python django-models django-forms

如果我有这样的模型和形式:

class Test(models.Model):
    name = Charfield()
    nickname = CharField()

class getNickname(forms.ModelForm):
    class Meta:
    model = Test;
    exclude = ['nickname'];
Run Code Online (Sandbox Code Playgroud)

昵称将是使用函数随机生成的名称.

def msms():
    return randomName;

def getNick(request):
    if request.method = 'POST':
        form = getNickname(request.POST);
        if form.is_valid():
            form.nickname = msms(); <--
            nickname = form.save();
Run Code Online (Sandbox Code Playgroud)

当我打电话给msms()时,它给了我一个错误.使用函数更改"昵称"的正确方法是什么?

Ign*_*ams 11

在模型上做它.

    if form.is_valid():
        nickname = form.save(commit=False)
        nickname.nickname = msms()
        nickname.save()
Run Code Online (Sandbox Code Playgroud)