【发布时间】:2020-08-06 17:28:17
【问题描述】:
我是 django 的新手,正在尝试将自定义用户扩展到多个用户配置文件,当我尝试保存用户时,它显示“该组的学生已经存在”。 第一个用户注册正常,但是当我创建第二个用户时,它会引发错误
即使是用户模型也没有该组的成员资格 这是我的代码
models.py
class CustomUser(AbstractUser):
USER_TYPE_CHOICES = (
(1, 'student'),
(2, 'parent'),
(3, 'gard'),
(4, 'teacher'),
(5, 'secretary'),
(6, 'supervisor'),
(7, 'admin'),
)
is_active = models.BooleanField(default=True)
user_type =models.PositiveSmallIntegerField(choices=USER_TYPE_CHOICES,null=True)
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='student_profile')
group = models.OneToOneField(Group,related_name='student_group',on_delete=models.CASCADE,null=True)
teacher = models.ManyToManyField(Teacher,related_name="student_teacher")
def save(self,*args,**kwargs):
self.user.is_active = False
return super(Student,self).save(*args,**kwargs)
class Group(models.Model):
name = models.CharField(max_length=255, unique=True)
slug = models.SlugField(allow_unicode=True, unique=True)
def __str__(self):
return self.name
def save(self, *args, **kwargs):
self.slug = slugify(self.name)
retuen super().save(*args, **kwargs)
这是我的 forms.py 文件
views.py
def student_signUpView(request,**kwargs):
registered = False
if request.method == 'POST':
user_form = UserSignUpForm(request.POST)
profile_form = StudentSignUpForm(request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save(commit=False)
user.set_password(user_form.cleaned_data['password2'])
print(user.user_type)
user.save()
profile = profile_form.save(commit=False)
profile.user = user
profile.exist = True
profile.save()
registered = True
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserSignUpForm()
profile_form = StudentSignUpForm()
return render(request, 'accounts/singup.html',{
'registered':registered,
'user_form': user_form,
'profile_form': profile_form,
})
这是错误
<ul class="errorlist"><li>user_type<ul class="errorlist"><li>This field is required.</li></ul></li></ul> <ul class="errorlist"><li>group<ul class="errorlist"><li>Student with this Group already exists.</li></ul></li></ul>
[06/Aug/2020 18:52:39] "POST /accounts/signup/Student/ HTTP/1.1" 200 7497
<ul class="errorlist"><li>group<ul class="errorlist"><li>Student with this Group already exists.</li></ul></li></ul>
我不知道错误在哪里,我卡住了
【问题讨论】:
标签: django django-models django-forms django-views