Установка начального значения в форме Django

Мне нужно установить начальное значение в форме и почему-то не работает, это очень странно, так как у меня есть точно такой же код в другом представлении, но в этом случае мой подход не работает:

views.py


@login_required
def add_lead(request):
    if request.method == 'POST':
        lead_form = LeadsForm(request.POST)
        if lead_form.is_valid():
            lead_form.save()
            messages.success(request, 'You have successfully added a new lead')


            return HttpResponseRedirect(reverse('add_lead'))
        else:
            messages.error(request, 'Error updating your Form')

    else:

        user = {"agent":request.user}
        lead_form = LeadsForm(request.POST or None, initial = user)


    return render(request,
                  'account/add_lead.html',
                  {'lead_form': lead_form}
                   )

forms.py

class LeadsForm(forms.ModelForm):
    class Meta:
        model = Leads
        fields = ('project_id','company','agent','point_of_contact','services','expected_licenses',
                  'expected_revenue','country', 'status', 'estimated_closing_date'
                  )
        widgets = {'estimated_closing_date': DateInput(),
                   }

По сути, агентом является зарегистрированный пользователь, поэтому я передаю request.user как переменную, но у меня ничего не получилось, что очень странно, потому что у меня такая же логика в другой форме

Любая помощь будет оценена по достоинству

Если вы хотите сделать форму с внешним ключом, вы можете использовать ModelChoiceField. В вашем случае вы можете использовать:

class LeadsForm(forms.ModelForm):
    agent = forms.ModelChoiceField(queryset=User.objects.all())

    class Meta:
        model = Leads
        fields = ('project_id','company','agent','point_of_contact','services','expected_licenses',
                  'expected_revenue','country', 'status', 'estimated_closing_date'
                  )
        widgets = {'estimated_closing_date': DateInput(),
                   }

Затем вы можете присвоить данные с user_id в вашей форме initial.

Вернуться на верх