20 lines
844 B
Python
20 lines
844 B
Python
import string
|
|
import secrets
|
|
from django.contrib.auth.models import AbstractUser
|
|
from django.db import models
|
|
from video_app.models import Video
|
|
|
|
class CustomUser(AbstractUser):
|
|
verify_email_token = models.CharField(max_length=20, blank=True, null=True)
|
|
favorite_videos = models.ManyToManyField(Video, related_name='favorite_by_users', blank=True)
|
|
watched_videos = models.ManyToManyField(Video, related_name='watched_by_users', blank=True)
|
|
|
|
def save(self, *args, **kwargs):
|
|
if not self.verify_email_token:
|
|
self.verify_email_token = self.generate_verification_token()
|
|
super().save(*args, **kwargs)
|
|
|
|
@staticmethod
|
|
def generate_verification_token(length=20):
|
|
characters = string.ascii_letters + string.digits
|
|
return ''.join(secrets.choice(characters) for _ in range(length))
|