Guest User

Untitled

a guest
Jan 22nd, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. from django.db import models
  2. from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  3.  
  4.  
  5.  
  6. class User(AbstractBaseUser):
  7. email = models.EmailField(
  8. verbose_name='email address',
  9. max_length=255,
  10. unique=True,
  11. )
  12. date_of_birth = models.DateField(null=True)
  13. is_active = models.BooleanField(default=True)
  14. is_admin = models.BooleanField(default=False)
  15. is_teacher = models.BooleanField(default=False)
  16. is_student = models.BooleanField(default=False)
  17. is_parent = models.BooleanField(default=False)
  18. in_class= models.BooleanField(default=False)
  19. bio = models.TextField(blank=True, help_text='write something about
  20. yourself...')
  21. # goes on...
  22.  
  23. from django.db import models
  24. from accounts.models import User
  25. from django.db.models.signals import post_save, pre_save
  26. from django.dispatch import receiver
  27.  
  28.  
  29. class GroupOfStudents(models.Model):
  30. teacher = models.ForeignKey(User,on_delete=models.CASCADE)
  31. students = models.ManyToManyField(User, related_name='students')
  32.  
  33. def __str__(self):
  34. return "Class of Teacher {}".format(self.teacher.first_name)
  35.  
  36. @receiver(post_save, sender=GroupOfStudents)
  37. def change_teacher_inclass(sender, instance, created, **kwargs):
  38. if created:
  39. teacher = instance.teacher
  40. teacher.in_class=True
  41. teacher.save()
  42.  
  43. @receiver(post_save, sender=GroupOfStudents)
  44. def change_student_inclass(sender, instance, created, **kargs):
  45. if created:
  46. for student in instance.students.all():
  47. student.in_class=True
  48. student.save()
  49.  
  50. >>> from accounts.models import User
  51. >>> from klass.models import GroupOfStudents
  52. >>> g = GroupOfStudents.objects.all()
  53. >>> first_obj = g[0]
  54. >>> first_obj
  55. <GroupOfStudents: Class of Teacher teacher>
  56. >>> for user in User.objects.filter(is_student=True):
  57. ... if user in first_obj.students.all():
  58. ... user.in_class = True
  59. ... user.save()
  60.  
  61. If usere.email == student.email:
  62. #same stuff of inclass....
Add Comment
Please, Sign In to add comment