мои данные модели регистра не сохраняются в БД, когда я пытаюсь создать нового пользователя - PullRequest
0 голосов
/ 31 марта 2020

мои данные модели регистра не сохраняются в БД, когда я пытаюсь создать нового пользователя. Кроме того, studentID не выдает никакой ошибки с помощью AutoField, но с IntegerField выдает «Сбой уникального ограничения: user_profile.user»

- вот мой model.py

class Profile(models.Model):
     user = models.OneToOneField(User, on_delete=models.CASCADE)
     StudentID = models.IntegerField(primary_key=True, verbose_name='SID')
     Branch = models.CharField(max_length=255, choices=Departments, default="CSE")
     YearOfStudy = models.IntegerField(default=1)
     ContactNumber = PhoneField(help_text='Contact phone number')
     image = models.ImageField(default='default.jpeg', upload_to='profile_pics', blank=True)
     parentsContactNumber = PhoneField(help_text="Parent's phone number", blank=True)

     def __str__(self):
         return self.Branch

    def save(self, *args, **kwargs):
         super(Profile, self).save(*args, **kwargs)
         img = Image.open(self.image.path)
         if img.height > 300 or img.width > 300:
             output_size = (300, 300)
             img.thumbnail(output_size)
             img.save(self.image.path)

forms.py

class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()
    first_name = forms.CharField()
    last_name = forms.CharField()

    class Meta:
         model = User
         fields = ['username', 'email', 'first_name', 'last_name', 'password1', 'password2']

class ProfileCreationForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ['StudentID', 'Branch', 'YearOfStudy', 'ContactNumber']

views.py

def register(request):
   if request.method == 'POST':
       form = UserRegisterForm(request.POST)
       form1 = ProfileCreationForm(request.POST, request.FILES)
       if form.is_valid() and form1.is_valid():
           StudentID = form.cleaned_data.get('StudentID')
           username = form.cleaned_data.get('username')
           user_instance = form.save()
           profile_instance = form1.save(commit=False)
           profile_instance.user = user_instance
           profile_instance.save()
           form1.save(commit=True)
           return redirect('login')
   else:
       form = UserRegisterForm()
       form1 = ProfileCreationForm()
   context = {
       'form': form,
       'form1': form1
   }
   return render(request, 'user/register.html', context)

в этом коде, если я пишу свой файл views.py таким образом, я получаю ту же ошибку views.py

def register(request):
   if request.method == 'POST':
       form = UserRegisterForm(request.POST)
       form1 = ProfileCreationForm(request.POST, request.FILES)
       if form.is_valid() and form1.is_valid():
           form.save()
           form1.save()
           return redirect('login')
   else:
       form = UserRegisterForm()
       form1 = ProfileCreationForm()
   context = {
       'form': form,
       'form1': form1
   }
   return render(request, 'user/register.html', context)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...