Ejemplo n.º 1
0
class Photo(models.Model):
    # 자신의 부모(Album)에 대한 외래키
    album = models.ForeignKey(Album)
    title = models.CharField('사진 제목', max_length=50)
    # ThumbnailImageField는 upload_to 옵션으로 저장 위치를 지정
    # MEDIA_ROOT로 지정된 폴더 하위에 /photo/2018/03/과 같은 폴더를 생성하고,
    # 여기에 업로드된 파일을 자동적으로 저장해줌
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('사진 설명', blank=True)
    # settings.TIME_ZONE = 'Asia/Seoul' 으로 설정해도 UTC 시각으로 처리됨
    # DB에 저장되는 시각은 UTC 시각이지만, 아래 속성 처리로 한국 시각으로 변환하여 템플릿에 제공함
    upload_date = models.DateTimeField('등록 일시', auto_now_add=True)

    # # 아래와 같이 속성 처리를 변경해야 한국 시각으로 처리됨
    # @property
    # def created_at_korean_time(self):
    # 	korean_timezone = timezone(settings.TIME_ZONE)
    # 	return self.created_at.astimezone(korean_timezone)

    class Meta:
        ordering = ['title']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        # 이 메소드가 정의된 객체의 URL /photo/photo/99 형식의 값을 반환
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 2
0
class Product(models.Model):
    name = models.CharField(max_length=100)
    price = models.IntegerField(default=0)
    description = models.CharField(max_length=5000)
    image = ThumbnailImageField('IMAGE',upload_to=user_directory_path,blank = True)
    quantity = models.IntegerField(default=0)
    category = models.CharField(max_length= 100, blank=True)
    # category = models.ForeignKey(Category, on_delete=models.CASCADE, default=1)

    def __str__(self):
        return self.name
        
    def get_absolute_url(self): # 현재 데이터의 절대 경로 추출
        return '' # reverse('blog:post_detail', args=(self.slug,))
    
    def get_previous(self): # 이전 데이터 추출
        return self.get_previous_by_modify_dt()

    def get_next(self): # 다음 데이터 추출
        return self.get_next_by_modify_dt()
    
    def save(self, *args, **kwargs):
        if self.id is None:
            temp_image = self.image
            self.image = None
            super().save(*args, **kwargs)
            self.image = temp_image
        super().save(*args, **kwargs)
Ejemplo n.º 3
0
class Photo(models.Model):
    """
    docstring
    """
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    title = models.CharField('TITLE', max_length=30)
    description = models.TextField('Photo Description', blank=True)
    image = ThumbnailImageField(upload_to='photo/%y/%m')
    upload_dt = models.DateTimeField('Upload Date', auto_now_add=True)
    owner = models.ForeignKey('auth.User',
                              on_delete=models.CASCADE,
                              verbose_name='OWNER',
                              blank=True,
                              null=True)

    class Meta:
        """
        docstring
        """
        ordering = ('title', )

    def __str__(self):
        """
        docstring
        """
        return self.title

    def get_absolute_url(self):
        """
        docstring
        """
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 4
0
class Review(models.Model):
    title = models.CharField(verbose_name='TITLE', max_length=50)
    content = HTMLField('CONTENT')
    create_dt = models.DateTimeField('CREATE DATE', auto_now_add=True)
    modify_dt = models.DateTimeField('MODIFY DATE', auto_now=True)
    owner = models.ForeignKey(User, on_delete=models.CASCADE,
                                verbose_name='OWNER', blank=True, null=True)
    # 전체 상품 말고 주문한 상품으로 받기
    product = models.ForeignKey(Product, on_delete=models.CASCADE, default=1)
    image = ThumbnailImageField('IMAGE', upload_to=review_image_path, blank = True, null=True)

    class Meta:
        ordering = ('-create_dt',) 

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return '' # reverse('shopwindows:review_add', args=(self.id,))
    
    def get_previous(self):
        return self.get_previous_by_create_dt()

    def get_next(self):
        return self.get_next_by_create_dt()

    def save(self, *args, **kwargs):
        if self.id is None:
            temp_image = self.image
            self.image = None
            super().save(*args, **kwargs)
            self.image = temp_image
        super().save(*args, **kwargs)
Ejemplo n.º 5
0
class Photo(models.Model):  #db에는 경로만 저장되고 파일을 media폴더에 저장된다.
    album = models.ForeignKey(Album,
                              on_delete=models.CASCADE)  #앨범테이블에 연결된 외래키.
    # 사진이 소속된 앨범객체를 가르킴. 연결된 앨범이 지워지면 photo도 지우라는 옵션(cascade) 추가(필수).
    # django2.0부터는 on_delete옵션을 추가해야함
    title = models.CharField(max_length=50)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    #Thumb~~는 이미지, 썸네일 둘다 저장하는 커스텀 필드(장고가 아니라 서드파티에서 스스로 정의한 필드).
    #모델에서 가져오지 않았음에 주목!! upload_to로 저장할 위치 지정
    #세팅에 MEDIA_ROOT로 지정된 곳 하위에 ~/photo/2020/12처럼 폴더를 만들고 그곳에 사진 및 썸네일 저장
    description = models.TextField('Photo Description', blank=True)
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)
    #auto~~ 객체가 생성될 때 시간을 자동으로 저장. 즉 사진이 업로드 될 때 시간을 자동으로 저장
    owner = models.ForeignKey(User, null=True, on_delete=models.CASCADE)

    #사용자만 생성할 수 있도록 소유자필드 추가

    class Meta:  #필드속성 외에 필요한 테이블의 파라미터를 정의하기 위해, 내부클래스 선언(이또한 상속받는 것)
        ordering = ['title']  #모델객체의 리스트 출력시 이름기준 오름차순으로

    def __str__(self):
        return self.title  #어디서는 Photo테이블의 객체를 호출하면, 그 객체의 title값을 표시하라.
        #단, __str__을 적용해 문자형태로 알기쉽게 표기

    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 6
0
class Photo(models.Model):
    # 자신의 부모(Album)에 대한 외래키
    album = models.ForeignKey(Album)
    title = models.CharField('사진 제목', max_length=50)
    # ThumbnailImageField는 upload_to 옵션으로 저장 위치를 지정
    # MEDIA_ROOT로 지정된 폴더 하위에 /photo/2018/03/과 같은 폴더를 생성하고,
    # 여기에 업로드된 파일을 자동적으로 저장해줌
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
Ejemplo n.º 7
0
class Photo(models.Model):
	# 자신의 부모(Album)에 대한 외래키
	album = models.ForeignKey(Album)  # Album부모 테이블에서 참조!
	title = models.CharField('제목', max_length=50)
	# ThumbnailImageField는 upload_to 옵션으로 저장 위치를 지정
	# MEDIA_ROOT로 지정된 폴더 하위에 /photo/2018/03/과 같은 폴더를 생성하고,
	# 여기에 업로드된 파일을 자동적으로 저장해줌
	image = ThumbnailImageField(upload_to='photo/%Y/%m')  # media 폴더의 photo안에 Y 년도에 해당하는 폴더 \ m 날짜에 해당하는 폴더에 저장함!
	description = models.TextField('제품 설명', blank=True)  # 여러 줄로 작성할 수 있는 게 TextField
	# settings.TIME_ZONE = 'Asia/Seoul' 으로 설정해도 UTC 시각으로 처리됨
	# DB에 저장되는 시각은 UTC 시각이지만, 아래 속성 처리로 한국 시각으로 변환하여 템플릿에 제공함

  # upload_date = models.DateTimeField('등록 일시', auto_now_add=True)
	upload_date = models.DateTimeField('등록 일시', auto_now_add=True)

	# # ##############아래와 같이 속성 처리를 변경해야 한국 시각으로 처리됨#################
	# @property
	# def created_at_korean_time(self):
	# 	korean_timezone = timezone(settings.TIME_ZONE)
	# 	return self.created_at.astimezone(korean_timezone)


	# class Meta:
	# 	ordering = ['title']
	class Meta:  # 날짜 최신순 정렬
		ordering = ['-upload_date']

	def __str__(self):
		return self.title

	def get_absolute_url(self):
		# 이 메소드가 정의된 객체의 URL /photo/photo/99 형식의 값을 반환
		return reverse('photo:photo_detail', args=(self.id,))

	def get_previous_post(self):  # 3.2.5 항에서 템플릿 작성할 때 사용
		return self.get_previous_by_upload_date()

	def get_next_post(self):  # 3.2.5 항에서 템플릿 작성할 때 사용
		return self.get_next_by_upload_date()

	def get_newer_photo(self):  						# ch10_nav
		newer_photo = Photo.objects.filter(
			upload_date__gt = self.upload_date
			, album = self.album
		).order_by('upload_date').first()
		return newer_photo

	def get_older_photo(self):      					# ch10_nav
		older_photo = Photo.objects.filter(
			upload_date__lt = self.upload_date
			, album = self.album
		).order_by('-upload_date').first()
		return older_photo
Ejemplo n.º 8
0
class Photo(models.Model):
    album = models.ForeignKey(Album)
    title = models.CharField(max_length=50)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('Photo Description', blank=True)
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)

    class Meta:
        ordering = ['title']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 9
0
class Photo(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    title = models.CharField('TITLE', max_length=30)
    description = models.TextField('Photo Description', blank=True)
    image = ThumbnailImageField('IMAGE', upload_to='photo/%Y/%m')
    upload_dt = models.DateTimeField('UPLOAD DATE', auto_now_add=True)

    class Meta:
        ordering = ('title', )

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 10
0
class Photo(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    title = models.CharField("TITLE", max_length=30)
    description = models.TextField("Photo Description", blank=True)
    image = ThumbnailImageField(upload_to="photo/%Y/%M")
    update_dt = models.DateTimeField("Upload Date", auto_now=True)

    class Meta:
        ordering = ("title", )

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse("photo:photo_detail", args=(self.id, ))
Ejemplo n.º 11
0
class Photo(models.Model):
    # 자신의 부모(Album)에 대한 외래키
    album = models.ForeignKey(Album)
    title = models.CharField('사진 제목', max_length=50)
    # ThumbnailImageField는 upload_to 옵션으로 저장 위치를 지정
    # MEDIA_ROOT로 지정된 폴더 하위에 /photo/2018/03/과 같은 폴더를 생성하고,
    # 여기에 업로드된 파일을 자동적으로 저장해줌
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    bojunggum = models.CharField('보증금/월세', max_length=50, blank=True)
    junse = models.CharField('전세', max_length=50, blank=True)
    m = models.CharField('전용/공급면적', max_length=20, blank=True)
    floor = models.CharField('해당층/건물층', max_length=50, blank=True)
    elevator = models.CharField('엘레베이터', max_length=10, blank=True)
    animal = models.CharField('반려동물', max_length=10, blank=True)
    loan = models.CharField('전세자금대출', max_length=10, blank=True)
    balcony = models.CharField('베란다/발코니', max_length=10, blank=True)
    inHome = models.CharField('입주가능일', max_length=10, blank=True)
    description = models.TextField('상세 설명', blank=True)

    # settings.TIME_ZONE = 'Asia/Seoul' 으로 설정해도 UTC 시각으로 처리됨
    # DB에 저장되는 시각은 UTC 시각이지만, 아래 속성 처리로 한국 시각으로 변환하여 템플릿에 제공함
    upload_date = models.DateTimeField('등록 일시', auto_now_add=True)

    # # 아래와 같이 속성 처리를 변경해야 한국 시각으로 처리됨
    # @property
    # def created_at_korean_time(self):
    # 	korean_timezone = timezone(settings.TIME_ZONE)
    # 	return self.created_at.astimezone(korean_timezone)

    class Meta:
        ordering = ['-upload_date']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        # 이 메소드가 정의된 객체의 URL /photo/photo/99 형식의 값을 반환
        return reverse('photo:photo_detail', args=(self.id, ))

    def get_previous_photo(self):
        previous_photo = Photo.objects.filter(upload_date__lt=self.upload_date,
                                              album=self.album).first()
        return previous_photo

    def get_next_photo(self):
        next_photo = Photo.objects.filter(upload_date__gt=self.upload_date,
                                          album=self.album).last()
        return next_photo
Ejemplo n.º 12
0
class Photo(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    title = models.CharField('TITLE', max_length=30)
    srcurl = models.URLField('Source URL', blank=True)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    upload_dt = models.DateTimeField('Upload Date', auto_now_add=True)

    class Meta:
        ordering = ('title', )

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse(
            'photo:photo_detail',
            args=(self.id),
        )
Ejemplo n.º 13
0
class Photo(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE) # Album 테이블에 연결된 외래키(사진이 소속된 앨범을 가리킴)
    title = models.CharField('TITLE', max_length=30)
    description = models.TextField('사진 설명', blank=True)
     # 필드를 커스텀필드로도 할 수 있음! // 원본 이미지 및 썸네일 이미지를 둘다 저장하는 필드 // upload_to = 저장할 위치(MEDIA_ROOT 기준), /photo/년도/월 형식으로 저장하겠다.
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    upload_dt = models.DateTimeField('업로드 일자', auto_now_add=True) # 사진이 업로드 되는 시간을 저장

    
    # 내부 클래스 // 객체 리스트 출력 시 순서(title 컬럼 기준으로)
    class Meta: 
        ordering = ('title',)
    
    def __str__(self):
        return self.title
    
    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id,)) # /photo/photo/99 형식의 url 반환
Ejemplo n.º 14
0
class Photo(models.Model):
    album = models.ForeignKey(
        Album, on_delete=models.CASCADE
    )  #https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.on_delete 참조
    title = models.CharField(max_length=50)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('Photo Description', blank=True)
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)
    owner = models.ForeignKey(User, null=True, on_delete=models.CASCADE)

    class Meta:
        ordering = ['title']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 15
0
class Photo(models.Model):
    # 자신의 부모(Album)에 대한 외래키
    album = models.ForeignKey(Album)
    title = models.CharField('사진 제목', max_length=50)
    # ThumbnailImageField는 upload_to 옵션으로 저장 위치를 지정
    # MEDIA_ROOT로 지정된 폴더 하위에 /photo/2018/03/과 같은 폴더를 생성하고,
    # 여기에 업로드된 파일을 자동적으로 저장해줌
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('사진 설명', blank=True)
    # settings.TIME_ZONE = 'Asia/Seoul' 으로 설정해도 UTC 시각으로 처리됨
    # DB에 저장되는 시각은 UTC 시각이지만, 아래 속성 처리로 한국 시각으로 변환하여 템플릿에 제공함
    upload_date = models.DateTimeField('등록 일시', auto_now_add=True)

    # 아래와 같이 속성 처리를 변경해야 한국 시각으로 처리됨
    @property
    def created_at_korean_time(self):
        korean_timezone = timezone(settings.TIME_ZONE)
        return self.created_at.astimezone(korean_timezone)

    class Meta:
        ordering = ['-upload_date']

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        # 이 메소드가 정의된 객체의 URL /photo/photo/99 형식의 값을 반환
        return reverse('photo:photo_detail', args=(self.id, ))

    # ver#3.0 https://stackoverflow.com/questions/39947041/how-to-continue-the-object-in-django-get-next-previous-by-date-created-and-publi
    # filter 사용법: http://brownbears.tistory.com/63
    def get_newer_photo(self):  # ch10_nav
        newer_photo = Photo.objects.filter(
            upload_date__gt=self.upload_date,
            album=self.album).order_by('upload_date').first()
        return newer_photo

    def get_older_photo(self):  # ch10_nav
        older_photo = Photo.objects.filter(
            upload_date__lt=self.upload_date,
            album=self.album).order_by('-upload_date').first()
        return older_photo
Ejemplo n.º 16
0
class Photo(models.Model):
    album = models.ForeignKey(
        Album,
        on_delete=models.CASCADE
    )
    title = models.CharField(max_length=50)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('Photo Description', blank=True)
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)
    owner = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
        null=True
    )
        
    class Meta:
        ordering = ['title']
        
    def __str__(self):
        return self.title
Ejemplo n.º 17
0
class Photo(models.Model):
    album = models.ForeignKey(Album)
    #한 줄 설명
    origin = models.CharField(max_length=50)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('상세설명', blank=True)
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)
    cnt = models.CharField(max_length=50)
    price = models.CharField(max_length=50)
    Subscription_ratings = models.CharField(max_length=50)
    purchase_after_sub = models.CharField(max_length=50)
    owner = models.ForeignKey(User, null=True)

    class Meta:
        ordering = ['origin']

    def __str__(self):
        return self.origin

    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id, ))
class Photo(models.Model):
    # album 컬럼은 Album 테이블에 연결된 외래 키, 본 사진이 소속된 앨범 객체를 가리키는 reference 역활
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    title = models.CharField(max_length=50)
    # image 컬럼 타입은 ThumbnailImageField, 이 필드는 사진에 대한 원본 이미지 및 썸네일 이미지 둘다를 저장할 수있는 필드
    # upload_to 옵션으로 저장할 위치를 지정, photo/%Y/%m의 의미는 MEDIA_ROOT 로 정의된 디렉터리 하위에 사진 년도 월을 포함해
    # 디렉터리를 만들고 그 곳에 업로드하는 사진의 원본 및 썸네일 사진을 저장.
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('Photo Description', blank=True)
    # 객체가 생성될때의 시각을 자동으로 기록
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)

    # 객체 리스트를 출력할 때의 title 컬럼 기준으로 오름차순으로 보여줌
    class Meta:
        ordering = ['title']

    def __str__(self):
        return self.title

    # 정의된 객체를 지칭하는 URL 을 반환
    def get_absolute_url(self):
        return reverse('photo:photo_detail', args=(self.id, ))
Ejemplo n.º 19
0
class Photo(models.Model):
    album = models.ForeignKey(
        Album,
        on_delete=models.CASCADE,
    )
    title = models.CharField(max_length=50)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    description = models.TextField('Photo Description', blank=True)
    upload_date = models.DateTimeField('Upload Date', auto_now_add=True)
    owner = models.ForeignKey(
        User,
        on_delete=models.CASCADE,
    )

    class Meta:
        ordering = ['title']
        verbose_name = 'Photo'
        verbose_name_plural = 'Photos'

    def __str__(self):
        return self.title

    def get_absolute_url(self):
        return reverse('photo:test', args=(self.id, ))
Ejemplo n.º 20
0
class Photo(models.Model):
    album = models.ForeignKey(Album, on_delete=models.CASCADE)
    title = models.CharField("Title", max_length=50)
    description = models.TextField("Photo Description", blank=True)
    image = ThumbnailImageField(upload_to='photo/%Y/%m')
    upload_dt = models.DateTimeField('Upload Date', auto_now_add=False)