Почему я получаю IntegrityError в / taxpayer / UNIQUE ограничение не выполнено: account_user.username? - PullRequest
0 голосов
/ 15 марта 2020
    from django import forms
    from .models import User, TaxpayerProfile, OfficialProfile
    class UserForm(forms.ModelForm):
        class Meta:
            model = User
            fields = ['first_name', 'last_name', 'email']

    class TaxpayerProfileForm(forms.ModelForm):
        class Meta:
            model = TaxpayerProfile
            fields = ['aadhar']

    class OfficialProfileForm(forms.ModelForm):
        class Meta:
            model = OfficialProfile
            fields = ['aadhar', 'uid']

Выше находится файл forms.py Ниже представлен файл views.py

    from django.contrib.auth import login
    from django.shortcuts import redirect, render
    from django.http import HttpResponse, HttpResponseRedirect
    from django.views.generic import CreateView
    from .forms import OfficialProfileForm, TaxpayerProfileForm, UserForm
    from .models import User

    def taxpayer_profile_view(request):
        if request.method == 'POST':
            user_form = UserForm(request.POST)
            taxpayer_profile_form = TaxpayerProfileForm(request.POST)

            if user_form.is_valid() and taxpayer_profile_form.is_valid():
                user = user_form.save(commit=False)
                user.save()
                user.taxpayer_profile.aadhar = taxpayer_profile_form.cleaned__data.get('aadhar')
                user.taxpayer_profile.save()
                return HttpResponseRedirect('/thanks/')

            else:
                user_form = UserForm()
                taxpayer_profile_form = TaxpayerProfileForm()
                return render(request, 'accounts/taxpayer_profile.html', {'user_form':user_form, 'taxpayer_profile_form':taxpayer_profile_form})

        else:
            user_form = UserForm()
            taxpayer_profile_form = TaxpayerProfileForm()
            return render(request, 'accounts/taxpayer_profile.html', {'user_form':user_form, 'taxpayer_profile_form':taxpayer_profile_form})


     def official_profile_view(request):
        if request.method == 'POST':
            user_form = UserForm(request.POST)
            official_profile_form = OfficialProfileForm(request.POST)

            if user_form.is_valid() and official_profile_form.is_valid():
                user = user_form.save(commit=False)
                user.save()
                user.official_profile.aadhar = official_profile_form.cleaned__data.get('aadhar')
                user.official_profile.uid = official_profile_form.cleaned__data.get('uid')
                user.official_profile.save()
                return HttpResponseRedirect('/thanks/')

            else:
                user_form = UserForm()
                official_profile_form = OfficialProfileForm()
                return render(request, 'official_profile.html', {'user_form':user_form, 'official_profile_form':official_profile_form})

       else:
           user_form = UserForm()
           official_profile_form = OfficialProfileForm()
           return render(request, 'officialr_profile.html', {'user_form':user_form, 'official_profile_form':official_profile_form})

Я включил правильный URL-путь в мой файл URL-адресов, и модели имеют поля, такие же, как формы. Но я не могу понять, почему я получаю эту ошибку. Есть ли проблема в функции save ()? Это то, что сказано на странице ошибок, но я не могу понять, почему.

...