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

时间:2012-04-27 16:37:29

标签: python django-models django-forms

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

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

class getNickname(forms.ModelForm):
    class Meta:
    model = Test;
    exclude = ['nickname'];

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

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();

当我调用msms()时,它给了我一个错误。使用函数更改“昵称”的正确方法是什么?

1 个答案:

答案 0 :(得分:11)

在模特身上做。

    if form.is_valid():
        nickname = form.save(commit=False)
        nickname.nickname = msms()
        nickname.save()