Guest User

Untitled

a guest
Jun 10th, 2024
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.91 KB | None | 0 0
  1. #profile_images.py
  2. from django.db import models
  3. from .profile import Profile
  4.  
  5. class ProfileImage(models.Model):
  6.     profile = models.ForeignKey(Profile, on_delete = models.CASCADE, related_name = 'profile_images')
  7.     image = models.FileField(upload_to = 'profile_images')
  8.  
  9. #profile.py
  10. from django.db import models
  11. from ..choises.genders import GENDERS
  12. from ..choises.marital_statuses import MARITAL_STATUSES
  13. from ..choises.montages import MONTAGES
  14. from ..choises.jobs import JOBS
  15. from django.urls import reverse
  16. from ckeditor.fields import RichTextField
  17. from django.utils import timezone
  18. import random
  19. import string
  20. import base64
  21. import uuid
  22. from django.contrib.auth import get_user_model
  23.  
  24. User = get_user_model()
  25.  
  26. def generate_referral_id():
  27.     referral_id = base64.urlsafe_b64encode(uuid.uuid4().bytes).decode('utf-8')[:25]
  28.     return referral_id
  29.  
  30.  
  31. def generate_unique_id(length=4):  
  32.     while True:
  33.         new_id = random.randint(10**(length-1), (10**length)-1)  # Minimum uzunluq 5
  34.         if not Profile.objects.filter(unique_id=str(new_id)).exists():  
  35.             return str(new_id)  # ID'yi string'e çevirin
  36.        
  37. class Profile(models.Model):
  38.     user = models.OneToOneField(User, on_delete=models.CASCADE, null = True, blank = True)
  39.     unique_id = models.CharField(max_length=20, unique=True, blank=True, null=True, )
  40.     name = models.CharField(max_length=255)
  41.     surname = models.CharField(max_length=255)
  42.     image = models.ImageField(upload_to='profile', null=True, blank=True)
  43.     job = models.CharField(max_length=100, choices=JOBS, null = True)
  44.     description = RichTextField(null = True, blank = True)
  45.     nationality = models.CharField(max_length=255, blank=True, null = True)
  46.     city = models.CharField(max_length=255, blank=True, null = True)
  47.     phone = models.CharField(max_length=255, blank=True, null = True)
  48.     email = models.EmailField(null = True, blank = True)
  49.     age = models.PositiveIntegerField(null=True, blank=True)
  50.     height = models.PositiveIntegerField(null=True, blank=True)
  51.     weight = models.FloatField(null=True, blank=True)
  52.     gender = models.CharField(choices=GENDERS, max_length=6, blank=True)
  53.     experience = models.PositiveIntegerField(null=True, blank=True)
  54.     languages = models.CharField(max_length=512, blank=True, null = True)
  55.     eye_color = models.CharField(max_length=255, blank=True, null = True)
  56.     hair_color = models.CharField(max_length=255, blank=True, null = True)
  57.  
  58.     likes = models.PositiveIntegerField(default=0)
  59.     liked_by = models.ManyToManyField(User, related_name='liked_profiles', blank=True)
  60.     clicks = models.PositiveIntegerField(default=0)
  61.  
  62.     is_newface = models.BooleanField(default=False)
  63.     is_active = models.BooleanField(default=False)
  64.     is_featured = models.BooleanField(default=False)
  65.     is_vip = models.BooleanField(default=False)
  66.     is_premium = models.BooleanField(default=False)
  67.  
  68.     activation_time = models.DateTimeField(null=True, blank=True)
  69.     duration = models.DurationField(null=True, blank=True)
  70.  
  71.     referral_id = models.CharField(max_length=100, unique=True, blank=True, null=True, )
  72.  
  73.     def __str__(self):
  74.         return f"{self.name} {self.surname}"
  75.    
  76.     def is_popular_actor(self):
  77.         try:
  78.             return self.actor.is_popular
  79.         except Actor.DoesNotExist:
  80.             return False
  81.  
  82.     def is_popular_model(self):
  83.         try:
  84.             return self.model.is_popular
  85.         except Model.DoesNotExist:
  86.             return False
  87.    
  88.     def save(self, *args, **kwargs):
  89.         if not self.unique_id:
  90.             self.unique_id = generate_unique_id()
  91.  
  92.         if not self.referral_id:
  93.             self.referral_id = generate_referral_id()
  94.  
  95.         if self.is_active:
  96.             self.activation_time = timezone.now()
  97.  
  98.         super().save(*args, **kwargs)
  99.  
  100.     def get_absolute_url(self):
  101.         return reverse("newface-detail", args=[str(self.pk)])
  102.  
Add Comment
Please, Sign In to add comment