Add data to ModelForm object before saving

Sometimes, the field might be required which means you can't make it past form.is_valid(). In that case, you can pass a dict object containing all fields to the form.

   if request.method == 'POST':
       data = {
        'fields1': request.user,
        'fields2': additional_data,
       }
       form = CreateASomethingForm(data)

    if form.is_valid():
        form.commit(save)

There are two ways given by Django official LINK : https://docs.djangoproject.com/en/3.0/topics/forms/modelforms/

Method 1]

author = Author(title='Mr')
form = PartialAuthorForm(request.POST, instance=author)
form.save()

Method 2]

form = PartialAuthorForm(request.POST)
author = form.save(commit=False)
author.title = 'Mr'
author.save()

form = CreateASomething(request.POST)
if form.is_valid():
    obj = form.save(commit=False)
    obj.field1 = request.user
    obj.save()