Этот кусок кода сработал:
def DadosUserView(request):
template_name = 'users_c2p/dados.html'
usercpf = request.user.username
profile = UserProfileInfo.objects.filter(cpf_cnpj=usercpf)
contrato_dividas = Contrato.objects.filter(cpf_cnpj=usercpf)
empresa = Empresa.objects.all()
if profile:
person = get_object_or_404(UserProfileInfo, cpf_cnpj=usercpf)
profile_form = UserProfileInfoForm(request.POST or None, instance=person)
flag = 1
else:
profile_form = UserProfileInfoForm(initial={"cpf_cnpj": usercpf,
}, )
flag = 0
if request.method == 'POST':
# Create new profile
if flag == 0:
profile_form = UserProfileInfoForm(data=request.POST)
print(request.method)
if profile_form.is_valid():
profile_form_cpf = profile_form.cleaned_data['cpf_cnpj']
if usercpf == profile_form_cpf:
profile_form.save()
log = LogUsuario.objects.create(cpf_cnpj=profile_form_cpf, movimentacao="FIRST UPDATE")
return redirect(reverse_lazy('users_c2p:dadosuser'))
else:
return profile_form.errors
#Update profile
elif flag == 1:
print("chegou!")
print(profile_form.errors)
if profile_form.is_valid():
profile_form_cpf = profile_form.cleaned_data['cpf_cnpj']
if usercpf == profile_form_cpf:
profile_form.save()
log = LogUsuario.objects.create(cpf_cnpj=profile_form_cpf, movimentacao="UPDATE")
return redirect(reverse_lazy('users_c2p:sucesso_cadastro'))
else:
return profile_form.errors
else:
return redirect(reverse_lazy('users_c2p:dadosuser'))
context = {
"UserData" : profile,
"profile_form": profile_form,
"Contrato": contrato_dividas,
"Empresa": empresa,
#'media_url': settings.MEDIA_URL,
}
return render(request, template_name, context)
Когда я пытался обновить базу данных и использовал этот код:
profile_form = UserProfileInfoForm(data=request.POST)
Это не сработало, я понял, чтоэто когда вы хотите создать новую запись, чтобы только обновить, мне нужно было только взять данные из формы.