Exemple #1
0
class Gamebook_art(models.Model):
	objects = RandomManager()
	title = models.CharField(max_length=255, default='')
	slug = models.SlugField(blank=True, editable=False, max_length=255)
	body = models.TextField(default='')
	date = models.DateTimeField(auto_now_add=True)
	thumbnail = models.ImageField(upload_to='content_thumbnails', default='')
	image1 = models.ImageField(default='', upload_to="Screenshoot")
	image2 = models.ImageField(default='', upload_to="Screenshoot")
	min_req = models.TextField(default='')
	rec_req = models.TextField(default='')
	Video_url = models.	URLField(default='', blank=True, max_length=1000)
	Gdrive1 = models.URLField(default='', blank=True, max_length=1000)
	Gdrive2 = models.URLField(default='', blank=True, max_length=1000)

	def save(self):
		self.slug = slugify(self.title)
		super(Gamebook_art, self).save()
		print(Gamebook_art.slug)

	def __str__(self):
		return '{}, {}'.format(self.id, self.title)
	snp = 250

	def snippet(self):
		return self.body [:self.snp] + ' [...]'
Exemple #2
0
class Producto(models.Model):
    objects = RandomManager()

    categoria = models.ForeignKey(Categoria, related_name='productos', on_delete=models.CASCADE)
    nombre = models.CharField(max_length=200, db_index=True)
    slug = models.SlugField(max_length=200, db_index=True)
    unidad = models.CharField(max_length=8, default='')
    imagen = models.ImageField(upload_to='productos/%Y/%m/%d', blank=True)
    url_imagen = models.CharField(max_length=200, default='', blank=True)
    descripcion = models.TextField(blank=True)
    preciopub = models.DecimalField(max_digits=12, decimal_places=2)
    stock = models.PositiveIntegerField()
    disponible = models.BooleanField(blank=True, default=True)
    creado = models.DateTimeField(auto_now_add=True)
    modificado = models.DateTimeField(auto_now=True)
    destacado = models.BooleanField(blank=True, default=False)
    descuento = models.DecimalField(max_digits=12, decimal_places=2, default=0)
    codigobarra = models.CharField(max_length=14, default='')

    class Meta:
        ordering = ('nombre',)
        index_together = (('id', 'slug'),)

    def __str__(self):
        return self.nombre

    def get_absolute_url(self):
        return reverse('shop:detalle_producto',
                       args=[self.id, self.slug])
Exemple #3
0
class Recipe(models.Model):
    name = models.CharField(max_length=128)
    image = models.ImageField(upload_to='recipes/', blank=True, null=True)
    storage = models.ForeignKey(Storage,
                                on_delete=models.PROTECT,
                                blank=True,
                                null=True)
    file_uid = models.CharField(max_length=256, default="", blank=True)
    file_path = models.CharField(max_length=512, default="", blank=True)
    link = models.CharField(max_length=512, null=True, blank=True)
    cors_link = models.CharField(max_length=1024, null=True, blank=True)
    keywords = models.ManyToManyField(Keyword, blank=True)
    steps = models.ManyToManyField(Step, blank=True)
    working_time = models.IntegerField(default=0)
    waiting_time = models.IntegerField(default=0)
    internal = models.BooleanField(default=False)
    nutrition = models.ForeignKey(NutritionInformation,
                                  blank=True,
                                  null=True,
                                  on_delete=models.CASCADE)
    created_by = models.ForeignKey(User, on_delete=models.PROTECT)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

    objects = RandomManager()

    def __str__(self):
        return self.name
Exemple #4
0
class Post(models.Model):

    title = models.CharField(max_length=60)
    body = RichTextField(max_length=10000)
    pub_date = models.DateField()
    slug = models.SlugField(max_length=140, unique=True, blank=True)
    state = models.IntegerField(default=STATE_CHOICES[0][0],
                                choices=STATE_CHOICES)
    author = models.ForeignKey(settings.AUTH_USER_MODEL,
                               on_delete=models.CASCADE)
    cat = models.ForeignKey(Category,
                            to_field='identy',
                            on_delete=models.CASCADE,
                            default=1)
    thumb = models.ImageField(default='default.png',
                              blank=True,
                              upload_to='post/%Y/%m/%D/')

    # Random
    objects = RandomManager()

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('blog:view', kwargs={'pk': self.id, 'slug': self.slug})

    def snippet(self):
        return strip_tags(self.body[:300]) + '...'
class MissingPerson(models.Model):

    objects = RandomManager()
    case_qr_code = models.URLField(max_length=2500, null=True)
    thumbnail_url = models.URLField(max_length=2500, null=True)
    agency_zip = models.CharField(max_length=2000, null=True)
    agency_address = models.CharField(max_length=2000, null=True)
    agency_state = models.CharField(max_length=2000, null=True)
    agency_city = models.CharField(max_length=2000, null=True)
    agency_name = models.CharField(max_length=2000, null=True)
    circumstances = models.CharField(max_length=10000000, null=True)
    eye_color = models.CharField(max_length=2000, null=True)
    hair_color = models.CharField(max_length=2000, null=True)
    ethnicity = models.CharField(max_length=2000, null=True)
    weight = models.CharField(max_length=2000, null=True)
    height = models.CharField(max_length=2000, null=True)
    gender = models.CharField(max_length=2000, null=True)
    age_when_missing = models.CharField(max_length=2000, null=True)
    current_age = models.CharField(max_length=2000, null=True)
    last_name = models.CharField(max_length=2000, null=True)
    first_name = models.CharField(max_length=2000, null=True)
    id_number = models.CharField(max_length=2000, null=True, unique=True)
    date_reported = models.CharField(max_length=2000, null=True)
    agency_website = models.URLField(max_length=2500, null=True)

    def __str__(self):
        name = '{} {}'.format(self.first_name, self.last_name)
        return name
Exemple #6
0
class Hospital(models.Model):

    objects = RandomManager()
    name = models.CharField(max_length=64, validators=[
        text_validator,
    ])

    #the type can be like private practice, general hospital, specialised hospital
    type = models.CharField(max_length=64, choices=HOSPITAL_TYPE)
    address = models.CharField(max_length=256)

    #taking_patients must be true for patients to be able to register at the hospital
    taking_patients = models.BooleanField(default=True)

    #delete the hospital's group on delete
    def delete(self, *args, **kwargs):
        super(Hospital, self).delete(*args, **kwargs)
        group = Group.objects.get(name=self.name)
        group.delete()

    #make a group for the hospital on save
    def save(self, *args, **kwargs):
        super(Hospital, self).save(*args, **kwargs)
        group, created = Group.objects.get_or_create(name=self.name)

    def __str__(self):
        return self.name
Exemple #7
0
class Question(models.Model):
    text = models.TextField(max_length=500)
    weight = models.IntegerField(choices=[(x, x) for x in range(5, 21)])
    randoms = RandomManager()
    objects = models.Manager()

    def __str__(self):
        return self.text
class Movie(models.Model):

    objects = RandomManager()

    title = models.CharField(max_length=100, default='')
    titleEng = models.CharField(max_length=100, default='')
    director = models.CharField(max_length=50, default='')
    actors = models.CharField(max_length=100, default='')
    nation = models.CharField(max_length=50, default='')
    plot = models.TextField()
    runtime = models.CharField(max_length=50, default='')
    genre1 = models.ForeignKey(Genre,
                               null=True,
                               on_delete=models.SET_NULL,
                               related_name='movie_main_genre')
    genre2 = models.ForeignKey(Genre,
                               null=True,
                               on_delete=models.SET_NULL,
                               related_name='movie_sub_genre')
    ratingGrade = models.CharField(max_length=50, default='')
    releaseDt = models.CharField(max_length=50, default='')
    descriptions = models.CharField(max_length=100, default='')
    poster = models.CharField(max_length=100, default='')
    stills = models.TextField()
    awards = models.TextField()
    keyword1 = models.ForeignKey(Keyword,
                                 null=True,
                                 on_delete=models.SET_NULL,
                                 related_name='movie_main_keyword')
    keyword2 = models.ForeignKey(Keyword,
                                 null=True,
                                 on_delete=models.SET_NULL,
                                 related_name='movie_sub_keyword1')
    keyword3 = models.ForeignKey(Keyword,
                                 null=True,
                                 on_delete=models.SET_NULL,
                                 related_name='movie_sub_keyword2')

    def genre1_name(self):
        return Genre.objects.get(id=self.genre1.id).name

    def genre2_name(self):
        return Genre.objects.get(id=self.genre1.id).name

    def keyword1_content(self):
        if self.keyword1:
            return Keyword.objects.get(id=self.keyword1.id).content

    def keyword2_content(self):
        if self.keyword2:
            return Keyword.objects.get(id=self.keyword2.id).content

    def keyword3_content(self):
        if self.keyword3:
            return Keyword.objects.get(id=self.keyword3.id).content

    def __str__(self):
        return f'{self.id}: {self.title}'
Exemple #9
0
class Article(models.Model):
    objects = RandomManager()
    title = models.TextField(verbose_name='Title')
    author = models.CharField(max_length=64, verbose_name='Author', null=True)
    date = models.CharField(max_length=64,
                            verbose_name='Publish date',
                            null=True)
    brief = models.TextField(verbose_name='Brief', null=True)
    free_text = models.TextField(verbose_name='Free part', null=True)
    pay_text = models.TextField(verbose_name='Full part', null=True)
class PostData(models.Model):
    id = models.AutoField(primary_key=True)
    content = models.CharField(max_length=200, null=False, blank=False)
    owner = models.ForeignKey(UserData,
                              related_name='posts',
                              on_delete=models.CASCADE)
    objects = RandomManager()

    def __str__(self):
        return 'Id: %s, Owner: %s' % (self.id, self.owner.name)
Exemple #11
0
class PuzzleVideo(models.Model):
    video = models.FileField('Видео', upload_to='puzzlevideo/', blank=False, null=True)

    objects = RandomManager()

    def __str__(self):
        return f'Видео пазла {self.id}'

    class Meta:
        verbose_name = "Видео пазла"
        verbose_name_plural = "Видео для пазлов"
Exemple #12
0
class PuzzleImage(models.Model):
    video = models.FileField('Картинка', upload_to='puzzleimage/', blank=False, null=True)

    objects = RandomManager()

    def __str__(self):
        return f'Картинка пазла {self.id}'

    class Meta:
        verbose_name = "Картинка пазла"
        verbose_name_plural = "Картинка для пазлов"
Exemple #13
0
class Blog(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50, default="Admin")
    content = models.TextField()
    date = models.DateField(default=datetime.now)
    image = models.ImageField(upload_to='blog/')
    objects = RandomManager()

    def __str__(self):
        return self.title + " | " + self.category.title
Exemple #14
0
class Trechos(models.Model):
    objects = RandomManager()
    video_endereco = models.CharField(max_length=100)
    video_assunto = models.CharField(max_length=100)
    inicio = models.IntegerField()
    fim = models.IntegerField()

    def __str__(self):
        return 'ID: ' + str(
            self.pk
        ) + '  Vídeo: ' + self.video_endereco + '  Assunto:  ' + self.video_assunto + '  Inicio: ' + str(
            self.inicio) + '  Fim: ' + str(self.fim)
Exemple #15
0
class Card(models.Model):

    objects = RandomManager()
    deck = models.ForeignKey(Deck, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    image = models.ImageField(upload_to='taarot_images', blank=True)
    number = models.IntegerField()
    words = models.ManyToManyField(Word, blank=True)
    description = models.TextField(help_text="Enter a description", blank=True)

    def __str__(self):
        return self.name
Exemple #16
0
class Question(models.Model):
    question = models.CharField(max_length=200)
    related_qcollection = models.ForeignKey(QCollection,
                                            on_delete=models.CASCADE)
    objects = RandomManager()

    def __str__(self):
        return self.question

    def get_absolute_url(self):
        from django.urls import reverse
        return reverse('mainland:q_detail', kwargs={'pk': self.pk})
Exemple #17
0
class Question(models.Model):
    objects = RandomManager()
    age_and_category = models.ForeignKey(AgeCategory, on_delete=models.CASCADE)
    QID = models.CharField(max_length=50)
    problem = models.CharField(max_length=200, default="")
    answer = models.CharField(max_length=50)
    choice1 = models.CharField(max_length=50)
    choice2 = models.CharField(max_length=50)
    choice3 = models.CharField(max_length=50)

    def __str__(self):
        return self.problem
Exemple #18
0
class Car(models.Model):
    objects = RandomManager()
    category = models.CharField(max_length=30,
                                choices=choices.CATEGORY,
                                null=True)
    car_model = models.CharField(max_length=30,
                                 choices=choices.CAR_MODELS,
                                 null=True)
    name = models.CharField(max_length=100)
    year = models.IntegerField(choices=choices.YEAR, null=True)
    price = models.IntegerField()  #Գին
    running = models.IntegerField(
        validators=[MaxValueValidator(1000000),
                    MinValueValidator(100)])  #Վազքը
    modification = models.CharField(max_length=100, blank=True,
                                    null=True)  #Մոդիֆիկացիա
    shed = models.CharField(max_length=30, choices=choices.SHED,
                            null=True)  #Թափք
    transfer_box = models.CharField(max_length=30,
                                    choices=choices.TRANSFER_BOX,
                                    null=True)  #Փոխանցման տուփ
    wheel = models.CharField(max_length=30,
                             choices=(("Ձախ", "Ձախ"), ("Աջ", "Աջ")),
                             null=True)  #Ղեկ
    engine = models.CharField(max_length=30, choices=choices.ENGINE,
                              null=True)  #Շարժիչ
    color = models.CharField(max_length=30, choices=choices.COLOR,
                             null=True)  #Գույնը
    color_of_the_hall = models.CharField(max_length=30,
                                         choices=choices.COLOR,
                                         null=True)  #Սրահի գույնը
    engine_capacity = models.CharField(choices=choices.ENGINE_CAPACITY,
                                       max_length=5,
                                       null=True)  #Շարժիչի ծավալը
    horsepower = models.IntegerField()  #Ձիաուժ
    cycling = models.IntegerField(
        validators=[MaxValueValidator(25),
                    MinValueValidator(10)])  #Անվահեծերը
    picture = models.ImageField(upload_to='Pictures/',
                                default='static_images/default.jpg')
    author = models.ForeignKey(User, on_delete=models.CASCADE, null=True)

    def __str__(self):
        x = "   "
        return str(self.car_model) + x + str(self.name) + x + str(
            self.year) + "   " + str(self.horsepower) + "HP"
Exemple #19
0
class Restaurante(models.Model):
	
	statuses = (
		('Activo', 'Activo'),
		('Inactivo', 'Inactivo'),
		('Eliminado', 'Eliminado'),
	)

	visible = (
		(u'Público','Público'),
		('Privado','Privado'),
	)

	objects = RandomManager()

	rif = models.CharField(max_length=13)
	nombre = models.CharField(max_length=100, help_text='Introduzca el nombre de su restaurante.', unique=True)
	slug = models.SlugField(max_length=100)
	logo = models.ImageField(upload_to='uploads/img/logos/', default='uploads/img/logos/ico.png')
	descripcion = models.TextField(max_length=300)
	status = models.CharField(max_length=20, default='Activo', choices=statuses, editable=False)
	abierto = models.BooleanField(default=True, help_text='Desmarcar si su restaurante se encuentra cerrado')
	visibilidad = models.CharField(max_length=10, null=True, choices=visible)
	
	#Claves foraneas y de otras tablas
	cliente = models.ForeignKey(Cliente)	
	categoria = models.ManyToManyField(Categoria)
	servicios = models.ManyToManyField(Servicio)
	metodos_pago = models.ManyToManyField(Metodo)
	votos = models.ManyToManyField(Voto)
	plan = models.ForeignKey(Plan)


	def save(self, *args, **kwargs):
		self.slug = defaultfilters.slugify(self.nombre)
		super(Restaurante, self).save(*args, **kwargs)


	class Meta:
		ordering = ('nombre',)
		verbose_name = _('Restaurante')
		verbose_name_plural = _('Restaurantes')

	def __unicode__(self):
		return u"Nombre: %s. Dueno: %s" %(self.nombre, self.cliente)
Exemple #20
0
class Highlight(IndexedTimeStampedModel):
    objects = RandomManager()
    book = models.ForeignKey(Book,
                             related_name="highlights",
                             on_delete=models.CASCADE)
    content = models.TextField()
    tags = models.ManyToManyField(Tag, related_name="highlights", blank=True)
    favorite = models.BooleanField(default=False)
    should_be_reviewed = models.BooleanField(null=True)
    frequency = models.CharField(
        max_length=255,
        choices=RETRIEVAL_FREQUENCY,
        default=RETRIEVAL_FREQUENCY.initial,
    )
    last_reviewed_date = models.DateTimeField(auto_now_add=True, null=True)
    reviews_count = models.PositiveIntegerField(default=0)

    def __str__(self):
        return f"{self.book.name}: {self.content}"
Exemple #21
0
class Title(models.Model):
    text = models.CharField(max_length=255, unique=True)
    picks = models.IntegerField(default=0)
    appearances = models.IntegerField(default=0)
    users = models.ManyToManyField(User, 'picks')
    author = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
        related_name='titles',
    )

    objects = RandomManager()

    @property
    def winrate(self):
        return round(self.picks / self.appearances * 100, 1)

    def __str__(self):
        return self.text
class Board(models.Model):
    title = models.CharField(max_length=255, verbose_name='Tytuł')
    slug = AutoSlugField(populate_from='title', unique=True)
    image = ImageField(blank=True, manual_crop="" ,verbose_name='Tło')
    body = models.TextField(verbose_name='Opis kategorii')
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    subscribers = models.ManyToManyField(User, related_name='subscribed_boards', blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    objects = RandomManager()

    def __str__(self):
        return self.title

    class Meta:
        ordering = ['-created_at']
        verbose_name='Dział'

    def get_absolute_url(self):
        return reverse('board',
                        args=[self.slug])
Exemple #23
0
class RestaurantCategory(models.Model):
    name = models.CharField(max_length=200, null=False, blank=True)
    country = models.CharField(max_length=200, null=False, blank=False)
    image = models.ImageField(upload_to=restaurants_category_image_path,
                              null=False,
                              blank=False)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now_add=True)

    objects = RandomManager()

    def __str__(self):
        return self.name

    def __unicode__(self):
        return self.name

    @property
    def restaurants(self):
        branches = []
        restaurants = tingweb.models.CategoryRestaurant.objects.filter(
            category__id=self.pk)
        for resto in restaurants:
            for b in resto.restaurant.branches:
                branches.append(b)
        return branches

    @property
    def restaurants_counts(self):
        return len(self.restaurants)

    @property
    def to_json(self):
        return {
            'id': self.pk,
            'name': self.name,
            'country': self.country,
            'image': self.image.url,
            'createdAt': self.created_at.strftime('%Y-%m-%d %H:%M:%S'),
            'updatedAt': self.updated_at.strftime('%Y-%m-%d %H:%M:%S')
        }
Exemple #24
0
class Post(models.Model):
    def __str__(self):
        return self.post_header

    #FK
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    media = models.ForeignKey(Media,
                              on_delete=models.CASCADE,
                              blank=True,
                              null=True)
    photo = models.ForeignKey(Photo,
                              on_delete=models.CASCADE,
                              blank=True,
                              null=True)

    post_header = models.CharField(max_length=50, blank=True, unique=False)
    post_body = models.TextField(max_length=500, blank=True, unique=False)
    post_created = DateTimeField(auto_now_add=True)
    post_updated = DateTimeField(auto_now=True)

    objects = RandomManager()
Exemple #25
0
class Card(models.Model):
    id = models.UUIDField(
        primary_key=True,
        default=uuid.uuid4,
        help_text='Unique ID for this particular card across whole library')

    deck = models.ForeignKey('Deck',
                             on_delete=models.CASCADE,
                             related_name='cards')
    question_image = models.CharField(
        max_length=1000,
        null=True,
        blank=True,
        help_text='Enter a url for question image. (Optioinal)')
    question_image_upload = models.ImageField(
        upload_to='images/',
        blank=True,
        null=True,
        help_text='Upload an image for card question. (Optional)')
    question_text = models.CharField(
        max_length=1000,
        null=True,
        blank=True,
        help_text=
        'Enter your question in text form. (Optional, Default if no image)')
    answer = models.CharField(
        max_length=255,
        help_text='Enter the answer to the question. (Required)')
    answered = models.BooleanField(default=False)
    return_to_pile = models.BooleanField(default=False)
    objects = RandomManager()

    def __str__(self):
        return self.answer

    def get_absolute_url(self):
        return reverse('card-detail', args=[str(self.id)])
Exemple #26
0
class RandomManagerMixin:
    """Allows selection of a random item from a queryset."""
    objects = RandomManager()
Exemple #27
0
class Photo(models.Model, HitCountMixin):
    user = models.ForeignKey(Propicker, on_delete=models.CASCADE)
    name = models.CharField('사진이름', max_length=200)
    ANIMAL = 0
    PERSON = 1
    OBJECT = 2
    NATURE = 3
    FOOD = 4
    TRAVEL = 5
    SEASON = 6
    WEATHER = 7
    CONSTRUCT = 8
    MOVING = 9
    ECT = 10
    GENRE = (
        (ANIMAL, '동물'),
        (PERSON, '사람'),
        (OBJECT, '사물'),
        (NATURE, '풍경/자연'),
        (FOOD, '음식'),
        (TRAVEL, '여행'),
        (SEASON, '계절'),
        (WEATHER, '날씨'),
        (CONSTRUCT, '건축'),
        (MOVING, '동적 이미지'),
        (ECT, '기타'),
    )
    genre = models.IntegerField('장르', choices=GENRE)

    uploaded_at = models.DateTimeField(auto_now_add=True)
    img = models.ImageField(upload_to='orgin', storage=MediaStorage())
    img_thumbnail = models.ImageField(upload_to='thumbnail/high',
                                      blank=True,
                                      storage=MediaStorage())
    img_thumbnail_d = models.ImageField(upload_to='thumbnail/down',
                                        blank=True,
                                        storage=MediaStorage())
    img_thumbnail_f = models.ImageField(upload_to='thumbnail/free',
                                        blank=True,
                                        storage=MediaStorage())
    content = models.TextField('사진 소개', max_length=260, null=True)
    tag = TagField()
    objects = RandomManager()
    price = models.IntegerField('사진 금액', default=0)
    create_date = models.DateTimeField('사진 작성일', auto_now_add=True)
    modify_date = models.DateTimeField('사진 수정일', auto_now=True, null=True)
    download_count = models.IntegerField('다운로드횟수', default=0)
    view_count = models.IntegerField('조회수', default=0)
    like_user_set = models.ManyToManyField(
        User, blank=True, related_name='like_user_set',
        through='Like')  # post.like_set 으로 접근 가능
    cart_add = models.ManyToManyField('cart.Cart',
                                      blank=True,
                                      related_name='cart_add_set',
                                      through='cart.PhotoDetail')

    class META:
        verbose_name = '사진'
        verbose_name_plural = '사진모음'
        ordering = [
            '-pk',
        ]

    def make_thumbnail(self):
        size = (500, 500)

        f = MediaStorage().open(self.img.name)
        image = Image.open(f)
        ftype = image.format

        image = ImageOps.fit(image, size, Image.ANTIALIAS)

        path, ext = os.path.splitext(self.img.name)
        name = os.path.basename(path)

        thumbnail_name = '%s_thumb%s' % (name, ext)

        temp_file = BytesIO()
        image.save(temp_file, ftype)
        temp_file.seek(0)

        content_file = ContentFile(temp_file.read())
        self.img_thumbnail.save(thumbnail_name, content_file)

        temp_file.close()
        content_file.close()
        f.close()

    def make_thumbnail2(self):
        size = (400, 400)

        f = MediaStorage().open(self.img.name)
        image = Image.open(f)
        ftype = image.format

        image = ImageOps.fit(image, size, Image.ANTIALIAS)

        path, ext = os.path.splitext(self.img.name)
        name = os.path.basename(path)

        thumbnail_name = '%s_thumb%s' % (name, ext)

        temp_file = BytesIO()
        image.save(temp_file, ftype)
        temp_file.seek(0)

        content_file = ContentFile(temp_file.read())
        self.img_thumbnail_d.save(thumbnail_name, content_file)

        temp_file.close()
        content_file.close()
        f.close()

    def make_thumbnail3(self):
        size = (300, 300)

        f = MediaStorage().open(self.img.name)
        image = Image.open(f)
        ftype = image.format

        image = ImageOps.fit(image, size, Image.ANTIALIAS)

        path, ext = os.path.splitext(self.img.name)
        name = os.path.basename(path)

        thumbnail_name = '%s_thumb%s' % (name, ext)

        temp_file = BytesIO()
        image.save(temp_file, ftype)
        temp_file.seek(0)

        content_file = ContentFile(temp_file.read())
        self.img_thumbnail_f.save(thumbnail_name, content_file)

        temp_file.close()
        content_file.close()
        f.close()

    def save(self, *args, **kwargs):
        image_changed = False

        if self.img and not self.img_thumbnail:
            image_changed = True

        if self.pk:
            # pk가 존재하면 pk에 해당하는 사진을 ori에 저장하라
            ori = Photo.objects.get(pk=self.pk)
            if ori.img != self.img:
                # 만약 ori.img와 현재 이미지가 다르면 이미지 변경을 실행하라
                image_changed = True

        super().save(*args, **kwargs)

        if image_changed:
            self.make_thumbnail()
            self.make_thumbnail2()
            self.make_thumbnail3()

    def __str__(self):
        return '{}'.format(self.pk)

    def price_dpx(self):
        return (int)(self.price * 0)

    def price_mpx(self):
        return (int)(self.price * 0.5)

    def price_mhpx(self):
        return (int)(self.price * 0.75)

    def get_absolute_url(self):
        return reverse('gallery:photo_detail', args=(self.id, ))

    @property
    def like_count(self):
        return self.like_user_set.count()
Exemple #28
0
class GameImage(models.Model):
    image = models.ImageField(blank=True, upload_to='game_images/')
    objects = RandomManager()
Exemple #29
0
class Quote(models.Model):
    text = models.TextField()
    author = models.CharField(max_length=200)
    contributor = models.CharField(max_length=200)
    published = models.BooleanField(default=False)
    objects = RandomManager()
Exemple #30
0
class Ad(models.Model):
    image = models.ImageField(blank=True, upload_to='ad/')
    video = models.FileField(blank=True, upload_to='ad/')
    objects = RandomManager()