Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2018
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.48 KB | None | 0 0
  1. # models.py
  2. class User(AbstractUser):
  3. is_student = models.BooleanField(default=False)
  4. is_teacher = models.BooleanField(default=False)
  5.  
  6.  
  7. class Student(models.Model):
  8. user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
  9. student_ID = models.CharField(unique=True, max_length=14,
  10. validators=[RegexValidator(regex='^.{14}$',
  11. message='The ID needs to be 14 characters long.')])
  12. photo = models.ImageField(upload_to='students_images')
  13. phone = models.CharField(max_length=15, )
  14.  
  15. def __str__(self):
  16. return self.user.username
  17.  
  18.  
  19. class Teacher(models.Model):
  20. user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
  21. academic_title = models.CharField(max_length=30)
  22. bio = models.TextField()
  23. website = models.URLField(help_text="E.g.: https://www.example.com", blank=True)
  24. photo = models.ImageField(upload_to='students_images')
  25. phone = models.CharField(max_length=15, )
  26.  
  27. def __str__(self):
  28. return self.user.username
  29.  
  30. # views.py
  31.  
  32.  
  33. class StudentSignUpView(CreateView):
  34. model = User
  35. form_class = StudentSignUpForm
  36. template_name = 'student_signup_form.html'
  37.  
  38. def get_context_data(self, **kwargs):
  39. kwargs['user_type'] = 'student'
  40. return super().get_context_data(**kwargs)
  41.  
  42. def form_valid(self, form):
  43. user = form.save()
  44. login(self.request, user)
  45. return redirect('index')
  46.  
  47.  
  48. class TeacherSignUpView(CreateView):
  49. model = User
  50. form_class = TeacherSignUpForm
  51. template_name = 'teacher_signup_form.html'
  52.  
  53. def get_context_data(self, **kwargs):
  54. kwargs['user_type'] = 'teacher'
  55. return super().get_context_data(**kwargs)
  56.  
  57. def form_valid(self, form):
  58. user = form.save()
  59. login(self.request, user)
  60. return render_to_response('index.html', {'form': form},)
  61.  
  62. #forms.py
  63.  
  64.  
  65. class StudentSignUpForm(UserCreationForm):
  66. name = forms.CharField(max_length=50)
  67. surname = forms.CharField(max_length=50)
  68. student_ID = forms.CharField(max_length=14, min_length=14)
  69. photo = forms.ImageField(required=False)
  70. email = forms.EmailField()
  71. phone = forms.CharField()
  72.  
  73. class Meta(UserCreationForm.Meta):
  74. model = User
  75. fields = (
  76. 'username', 'email', 'name', 'surname', 'student_ID', 'photo',
  77. 'email', 'phone', 'password1', 'password2')
  78.  
  79. def save(self, commit=True):
  80. user = super().save(commit=False)
  81. user.is_student = True
  82. if commit:
  83. user.save()
  84. return user
  85.  
  86.  
  87. class TeacherSignUpForm(UserCreationForm):
  88. name = forms.CharField(max_length=50)
  89. surname = forms.CharField(max_length=50)
  90. academic_title = forms.CharField(max_length=30)
  91. photo = forms.ImageField(required=False)
  92. email = forms.EmailField()
  93. bio = forms.Textarea()
  94. phone = forms.CharField(max_length=15)
  95. website = forms.URLField(help_text="E.g.: https://www.example.com", required=False)
  96.  
  97. class Meta(UserCreationForm.Meta):
  98. model = User
  99. fields = ('username', 'email', 'name', 'surname', 'academic_title', 'photo',
  100. 'email', 'phone', 'website', 'password1', 'password2')
  101.  
  102. def save(self, commit=True):
  103. user = super().save(commit=False)
  104. user.is_teacher = True
  105. if commit:
  106. user.save()
  107. return user
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement