Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to assign value to django form's field before saving?

if I have a model and form like this:

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

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

the nickname will be a randomly generated name using a function.

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

when I called msms(), it gives me an error. what is the proper way of changing "nickname" using a function?

like image 352
iCodeLikeImDrunk Avatar asked Apr 27 '12 16:04

iCodeLikeImDrunk


1 Answers

Do it on the model.

    if form.is_valid():
        nickname = form.save(commit=False)
        nickname.nickname = msms()
        nickname.save()
like image 93
Ignacio Vazquez-Abrams Avatar answered Oct 05 '22 10:10

Ignacio Vazquez-Abrams