Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # models.py
- class User(AbstractUser):
- is_student = models.BooleanField(default=False)
- is_teacher = models.BooleanField(default=False)
- class Student(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
- student_ID = models.CharField(unique=True, max_length=14,
- validators=[RegexValidator(regex='^.{14}$',
- message='The ID needs to be 14 characters long.')])
- photo = models.ImageField(upload_to='students_images')
- phone = models.CharField(max_length=15, )
- def __str__(self):
- return self.user.username
- class Teacher(models.Model):
- user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
- academic_title = models.CharField(max_length=30)
- bio = models.TextField()
- website = models.URLField(help_text="E.g.: https://www.example.com", blank=True)
- photo = models.ImageField(upload_to='students_images')
- phone = models.CharField(max_length=15, )
- def __str__(self):
- return self.user.username
- # views.py
- class StudentSignUpView(CreateView):
- model = User
- form_class = StudentSignUpForm
- template_name = 'student_signup_form.html'
- def get_context_data(self, **kwargs):
- kwargs['user_type'] = 'student'
- return super().get_context_data(**kwargs)
- def form_valid(self, form):
- user = form.save()
- login(self.request, user)
- return redirect('index')
- class TeacherSignUpView(CreateView):
- model = User
- form_class = TeacherSignUpForm
- template_name = 'teacher_signup_form.html'
- def get_context_data(self, **kwargs):
- kwargs['user_type'] = 'teacher'
- return super().get_context_data(**kwargs)
- def form_valid(self, form):
- user = form.save()
- login(self.request, user)
- return render_to_response('index.html', {'form': form},)
- #forms.py
- class StudentSignUpForm(UserCreationForm):
- name = forms.CharField(max_length=50)
- surname = forms.CharField(max_length=50)
- student_ID = forms.CharField(max_length=14, min_length=14)
- photo = forms.ImageField(required=False)
- email = forms.EmailField()
- phone = forms.CharField()
- class Meta(UserCreationForm.Meta):
- model = User
- fields = (
- 'username', 'email', 'name', 'surname', 'student_ID', 'photo',
- 'email', 'phone', 'password1', 'password2')
- def save(self, commit=True):
- user = super().save(commit=False)
- user.is_student = True
- if commit:
- user.save()
- return user
- class TeacherSignUpForm(UserCreationForm):
- name = forms.CharField(max_length=50)
- surname = forms.CharField(max_length=50)
- academic_title = forms.CharField(max_length=30)
- photo = forms.ImageField(required=False)
- email = forms.EmailField()
- bio = forms.Textarea()
- phone = forms.CharField(max_length=15)
- website = forms.URLField(help_text="E.g.: https://www.example.com", required=False)
- class Meta(UserCreationForm.Meta):
- model = User
- fields = ('username', 'email', 'name', 'surname', 'academic_title', 'photo',
- 'email', 'phone', 'website', 'password1', 'password2')
- def save(self, commit=True):
- user = super().save(commit=False)
- user.is_teacher = True
- if commit:
- user.save()
- return user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement