models.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import re
  2. from django.contrib.auth.hashers import make_password, check_password
  3. from django.db import models
  4. from django.contrib.auth.models import User
  5. from django.db.models.signals import post_save
  6. from django.dispatch import receiver
  7. # Create your models here.
  8. class ProfileManager(models.Manager):
  9. def updateUserProfile(self, details):
  10. pass
  11. # extension of the built in User model made by Django
  12. class Profile(models.Model):
  13. user = models.OneToOneField(User, on_delete=models.CASCADE)
  14. created_at = models.DateTimeField(auto_now_add=True)
  15. updated_at = models.DateTimeField(auto_now=True)
  16. # manage user
  17. objects = ProfileManager()
  18. just_joined = models.BooleanField(default=True)
  19. yt_channel_id = models.CharField(max_length=420, default='')
  20. import_in_progress = models.BooleanField(default=True)
  21. # google api token details
  22. access_token = models.TextField(default="")
  23. refresh_token = models.TextField(default="")
  24. expires_at = models.DateTimeField(blank=True, null=True)
  25. # import playlist page
  26. manage_playlists_import_textarea = models.CharField(max_length=420, default="")
  27. # create playlist page
  28. create_playlist_name = models.CharField(max_length=50, default="")
  29. create_playlist_desc = models.CharField(max_length=50, default="")
  30. create_playlist_type = models.CharField(max_length=50, default="")
  31. create_playlist_add_vids_from_collection = models.CharField(max_length=50, default="")
  32. create_playlist_add_vids_from_links = models.CharField(max_length=50, default="")
  33. # as soon as one User object is created, create an associated profile object
  34. @receiver(post_save, sender=User)
  35. def create_user_profile(sender, instance, created, **kwargs):
  36. if created:
  37. Profile.objects.create(user=instance)
  38. # whenever User.save() happens, Profile.save() also happens
  39. @receiver(post_save, sender=User)
  40. def save_user_profile(sender, instance, **kwargs):
  41. instance.profile.save()