How to set a default value on a form when it has been excluded?

I tried 3 different approaches and nothing works. Here is my view:

def my_view(request):
    if request.method == 'POST':
        form = DealershipForm(request.POST)
        if form.is_valid():
            dealership = form.save(commit=False)
            dealership.entered_by = User(id=2)
            dealership.save()
            messages.success(request, 'Dealership added.')
    else:
        form = DealershipForm()
    return response(request, template='misc/my_template.html',
                    vars={'form':form})

I also tried changing cleaned_dataright after form.is_valid, I tried the installation initialand instancenothing works!

+3
source share
1 answer
DealershipForm(request.POST, instance=Dealership(my_field="my_value"))

Must work.

EDIT:

Your code after the change:

def my_view(request):
    if request.method == 'POST':
        form = DealershipForm(request.POST, instance=Dealership(entred_by=User(id=2))
        if form.is_valid():
            form.save()
            messages.success(request, 'Dealership added.')
    else:
        form = DealershipForm()
    return response(request, template='misc/my_template.html',
                    vars={'form':form})

Edit after your comment:

def my_view(request):
    if request.method == 'POST':
        instance = Dealership()
        instance.entered_by_id = 2
        form = DealershipForm(request.POST, instance=instance)
        if form.is_valid():
            form.save()
            messages.success(request, 'Dealership added.')
    else:
        form = DealershipForm()
    return response(request, template='misc/my_template.html',
                    vars={'form':form})
+4
source

Source: https://habr.com/ru/post/1767234/


All Articles