Files
colio/portfolios/models.py

33 lines
1.4 KiB
Python

from django.db import models
from common.models.baseModels import BaseModel
from common.utils.fileManager import DynamicUploadTo
from django.contrib.postgres.fields import ArrayField
from django.conf import settings
from users.models import User
NICKNAME_LEN = 20
class Portfolio(BaseModel):
title = models.CharField(max_length=20)
category = ArrayField(models.CharField(max_length=20), default=list)
is_published = models.BooleanField(default=False)
view_count = models.IntegerField(default=0)
like_count = models.IntegerField(default=0)
scrap_count = models.IntegerField(default=0)
is_represent = models.BooleanField(default=False)
now_worker = models.CharField(max_length=NICKNAME_LEN, blank=True)
thumbnail = models.ImageField(upload_to=DynamicUploadTo("portfolio", "thumbnail"), null=True, blank=True)
code_id = models.CharField(max_length=26, null=True, blank=True)
owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='owned_portfolios', to_field="id")
likers = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='liked_portfolios', blank=True)
scrappers = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='scrapped_portfolios', blank=True)
def delete(self, *args, **kwargs):
if self.thumbnail:
self.thumbnail.delete(save=False)
super().delete(*args, **kwargs)