python - 我无法使用除超级用户之外的其他帐户登录 django 应用程序
问题描述
我是 Django 的新手。我有一个项目,我无法使用除超级用户帐户之外的其他帐户登录。这是我的模型
class School(models.Model):
school = models.CharField(max_length=100, null=False, blank=False,default='school')
class User(AbstractUser):
schools = models.ForeignKey(School, on_delete=models.PROTECT, null=False, blank=False,default=1)
is_student = models.BooleanField(default=False)
is_teacher = models.BooleanField(default=False)
class Teacher(models.Model):
school = models.ForeignKey(School, on_delete=models.PROTECT, null=False, blank=False)
name = models.CharField(max_length=30, blank=False, null=False)
code = models.CharField(max_length=30, blank=False, null=False)
class Student(models.Model):
school = models.ForeignKey(School, on_delete=models.PROTECT, null=False, blank=False)
first_name = models.CharField(max_length=30, blank=False, null=False)
last_name = models.CharField(max_length=30, blank=False, null=False)
adm = models.CharField(max_length=30, blank=False, null=False)
我是 Django 和自学新手。请那里的任何人帮助我。问题可能出在哪里??
我的登录视图。
def Login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username,password=password)
if user is not None:
auth.login(request, user)
if username.endswith("@teacher"):
return redirect('home')
else:
return redirect('students')
#return redirect('home')
else:
messages.info(request,'Invalid Credentials')
return redirect('login')
else:
return render(request, 'login2.html')
return redirect('teachers')
用户创建表格
class TeacherSignUpForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = User
def save(self, commit=True):
user = super().save(commit=False)
user.is_teacher = True
if commit:
user.save()
school = School.objects.create(user=user)
return user
class StudentSignUpForm(UserCreationForm):
class Meta(UserCreationForm.Meta):
model = User
@transaction.atomic
def save(self):
user = super().save(commit=False)
user.is_student = True
user.save()
student = Student.objects.create(user=user)
#student.interests.add(*self.cleaned_data.get('interests'))
return user
解决方案
推荐阅读
- javascript - 如何使用 JS 类创建自定义元素来创建元素的属性
- autodesk-forge - 通过修改转换后的文件(BIM 360 Revit)重新转换(SVF)转换后的文件是否有云信用?
- listview - Flutter IndexedWidgetBuilder 与 ListView.builder 与动态项目数?
- ruby - Ruby 中提供的代码有什么意义?
- java - 无法让我的整数相加以获得正确的输出
- r - 如何排除出现此值的第一个实例的行中的所有值?(R Dplyr)
- javascript - Javascript如何在数组中找到一个完整的类对象
- webpack - 使用 vue-router “历史”模式,但仍需要 URL 中的 /#/ 才能工作
- javascript - 使用 Javascript 将十进制转换为十六进制或 Unicode
- javascript - 如何创建一个 React 代码来显示输入?