Установить значение поля формы перед is_valid ()

У меня возникли проблемы с пониманием, как это сделать. Я приложил все усилия к поиску в Google без всякой удачи.

Я начну с небольшого кода и объясню, что я пытаюсь сделать на ходу:

models.py
class Action(models.Model):
    title = models.CharField(max_length=200)
    owner = models.ForeignKey(User, related_name='actions')
    created_by = models.ForeignKey(User, related_name='+', editable=False)
    modified_by = models.ForeignKey(User, related_name='+', editable=False)

class ActionForm(ModelForm):
    class Meta:
        model = Action
views.py

По умолчанию есть раскрывающееся поле для владельца. У меня есть значок, который позволяет пользователю вводить новое имя пользователя в текстовое поле вместо владельца. Я проверяю, еслиowner_new был отправлен, и если это так, создайте этого пользователя. Затем мне нужно установитьowner поле к этому значению, так чтоform.is_valid() будет правдой.

def action_create(request):
    if request.method == 'POST':
        form = ActionForm(request.POST)
        # check if new user should be created
        if 'owner_new' in request.POST:
            # check if user already exists
            user = User.objects.get(username=request.POST.get('owner_new'))
            if not user:
                user = User.objects.create_user(request.POST.get('owner_new'))
            # HERE IS WHERE I'M STUMPED
            form.owner = user.id
        if form.is_valid(): # THIS FAILS BECAUSE form.owner ISN'T SET
            action = form.save(commit=False)
            action.created_by = request.user
            action.modified_by = request.user
            action.save()
            return redirect('action_register:index')
    else:
        form = ActionForm()
    return render(request, 'actions/create.html', {'form': form})

Ответы на вопрос(2)

Ваш ответ на вопрос